/**
 * HWYS CENTRAL — 運営画面・顧客フォーム共通スタイル
 * UIUX 北極星（/.cursorrules §8.0）: ストレスゼロ / 直感的・迷わない / 美しくワクワク
 * デザイン言語（§8.1）: Apple HIG 系 — 余白・触りやすさ・ソフト影・ホバー/フォーカス glow
 */
:root {
    color-scheme: light;

    /* --- iOS 系サーフェス --- */
    --hwys-bg: #f2f2f7;
    --hwys-bg-elevated: #ffffff;
    --hwys-bg-secondary: #e5e5ea;
    --hwys-text: #1c1c1e;
    --hwys-muted: #636366;
    --hwys-text-secondary: var(--hwys-muted);
    --hwys-border: rgba(60, 60, 67, 0.18);
    --hwys-separator: rgba(60, 60, 67, 0.12);
    --hwys-surface: #f9f9fb;
    --hwys-code-bg: #f2f2f7;
    --hwys-danger-bg: #ffebea;
    --hwys-danger-fg: #d70015;
    --hwys-success-bg: #e8faf0;
    --hwys-success-fg: #248a3d;
    --hwys-warn-bg: #fff8e6;
    --hwys-warn-fg: #b25000;
    --hwys-info-bg: #eef6ff;
    --hwys-info-fg: #0040dd;
    --hwys-ok-badge: #248a3d;

    /* --- アクセント（iOS システムブルー + ブランドグラデ） --- */
    --hwys-primary: #5856d6;
    --hwys-primary-hover: #4f4ed4;
    --hwys-accent: #007aff;
    --hwys-accent-hover: #0066d6;
    --hwys-accent-2: #ff2d55;
    --hwys-accent-3: #34c759;
    --hwys-accent-warm: #ff9500;
    --hwys-accent-soft: rgba(0, 122, 255, 0.14);
    --hwys-gradient-brand: linear-gradient(135deg, #5856d6 0%, #007aff 52%, #5ac8fa 100%);
    --hwys-gradient-joy: linear-gradient(135deg, #5856d6 0%, #af52de 42%, #ff2d55 100%);
    --hwys-gradient-warm: linear-gradient(135deg, #ff9500 0%, #ffcc00 100%);
    --hwys-gradient-calm: linear-gradient(165deg, #eef6ff 0%, #f5f0ff 42%, #fff5eb 100%);

    /* --- 角丸・影・触りやすさ --- */
    --hwys-radius-sm: 10px;
    --hwys-radius: 12px;
    --hwys-radius-lg: 16px;
    --hwys-radius-xl: 20px;
    --hwys-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.04), 0 2px 8px rgba(0, 0, 0, 0.04);
    --hwys-shadow-md: 0 4px 16px rgba(0, 0, 0, 0.08), 0 2px 6px rgba(0, 0, 0, 0.04);
    --hwys-shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.1), 0 4px 12px rgba(0, 0, 0, 0.05);
    --hwys-shadow-glow: 0 8px 28px rgba(88, 86, 214, 0.2);
    --hwys-glow-hover: 0 0 0 1px rgba(255, 255, 255, 0.6), 0 0 0 4px rgba(0, 122, 255, 0.22), 0 8px 24px rgba(0, 122, 255, 0.18);
    --hwys-glow-focus: 0 0 0 4px rgba(0, 122, 255, 0.28), 0 2px 12px rgba(0, 122, 255, 0.15);
    --hwys-touch-min: 44px;
    --hwys-font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Noto Sans JP", "Segoe UI", system-ui, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", sans-serif;
    --hwys-font-display: "Outfit", "Noto Sans JP", var(--hwys-font);
    --hwys-sec-accent: #5856d6;
    --hwys-transition: 0.2s cubic-bezier(0.25, 0.1, 0.25, 1);
}

body.hwys-page {
    font-family: var(--hwys-font);
    margin: 0;
    color: var(--hwys-text);
    line-height: 1.5;
    font-size: 16px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    position: relative;
    background: var(--hwys-bg);
    min-height: 100vh;
    padding-left: env(safe-area-inset-left, 0);
    padding-right: env(safe-area-inset-right, 0);
    -webkit-tap-highlight-color: transparent;
}

body.hwys-page--customer {
    background: var(--hwys-gradient-calm);
    background-attachment: fixed;
}

body.hwys-page--shell {
    padding: 0;
    max-width: none;
    margin: 0;
}

.hwys-app-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1.25rem;
    padding: 0.75rem max(1.25rem, env(safe-area-inset-right, 0)) 0.75rem max(1.25rem, env(safe-area-inset-left, 0));
    background: rgba(255, 255, 255, 0.72);
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    color: var(--hwys-text);
    border-bottom: 1px solid var(--hwys-separator);
    box-shadow: var(--hwys-shadow-sm);
    position: sticky;
    top: 0;
    z-index: 100;
}

.hwys-app-bar__brand {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.hwys-app-bar__logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: var(--hwys-radius-sm);
    background: var(--hwys-gradient-brand);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 800;
    box-shadow: var(--hwys-shadow-sm);
}

.hwys-app-bar__title {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.hwys-app-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.15rem;
}

.hwys-app-nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--hwys-muted);
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1;
    min-height: var(--hwys-touch-min);
    padding-block: calc((var(--hwys-touch-min) - 1em) / 2);
    padding-inline: 0.85rem;
    border-radius: 999px;
    box-sizing: border-box;
    white-space: nowrap;
    transition: background var(--hwys-transition), color var(--hwys-transition), box-shadow var(--hwys-transition);
}

@media (hover: hover) {
    .hwys-app-nav a:hover {
        background: var(--hwys-accent-soft);
        color: var(--hwys-accent);
        text-decoration: none;
        box-shadow: var(--hwys-glow-hover);
    }
}

.hwys-app-nav a.is-active {
    background: var(--hwys-accent-soft);
    color: var(--hwys-accent);
    font-weight: 700;
    text-decoration: none;
}

.hwys-app-nav a.hwys-app-nav__has-badge {
    gap: 0.35rem;
}

.hwys-app-nav__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.15rem;
    height: 1.15rem;
    padding: 0 0.28rem;
    border-radius: 999px;
    background: #ff3b30;
    color: #fff;
    font-size: 0.62rem;
    font-weight: 800;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.hwys-app-body {
    max-width: 1180px;
    margin: 0 auto;
    padding: 1.5rem max(1.25rem, env(safe-area-inset-right, 0)) 3rem max(1.25rem, env(safe-area-inset-left, 0));
}

body.hwys-page--wide.hwys-page--shell .hwys-app-body {
    max-width: 1280px;
}

.hwys-page-head {
    margin-bottom: 1.25rem;
}

.hwys-page-head__eyebrow {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--hwys-muted);
}

.hwys-page-head__title {
    margin: 0.25rem 0 0.35rem;
    font-size: clamp(1.35rem, 4vw, 1.75rem);
    font-weight: 700;
    letter-spacing: -0.03em;
}

.hwys-page-head__sub {
    margin: 0;
    font-size: 0.92rem;
}

.hwys-customer-head {
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--hwys-border);
}

.hwys-customer-head__eyebrow {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: var(--hwys-muted);
}

.hwys-customer-head__title {
    margin: 0.3rem 0 0.35rem;
    font-size: 1.4rem;
}

.hwys-customer-head__company {
    margin: 0;
    font-size: 1rem;
}

.hwys-customer-head__back {
    margin: 0.65rem 0 0;
    font-size: 0.88rem;
}

.hwys-panel {
    background: var(--hwys-bg-elevated);
    border: 1px solid var(--hwys-separator);
    border-radius: var(--hwys-radius-lg);
    box-shadow: var(--hwys-shadow-sm);
    padding: 1.15rem 1.25rem 1.25rem;
    margin-bottom: 1.15rem;
    transition: box-shadow var(--hwys-transition);
}

@media (hover: hover) {
    .hwys-panel:hover {
        box-shadow: var(--hwys-shadow-md);
    }
}

.hwys-panel__title {
    margin: 0 0 0.75rem;
    font-size: 1rem;
    font-weight: 700;
}

.hwys-pill {
    display: inline-block;
    padding: 0.18rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.35;
    white-space: nowrap;
    vertical-align: middle;
}

.hwys-pill--wf {
    background: var(--hwys-surface);
    color: #475569;
    border: 1px solid var(--hwys-border);
}

.hwys-pill--wf-0 { background: #f1f5f9; color: #475569; }
.hwys-pill--wf-1 { background: #eff6ff; color: #1d4ed8; border-color: #bfdbfe; }
.hwys-pill--wf-2 { background: #eef2ff; color: #4338ca; border-color: #c7d2fe; }
.hwys-pill--wf-3 { background: #f5f3ff; color: #6d28d9; border-color: #ddd6fe; }
.hwys-pill--wf-4 { background: #fdf4ff; color: #a21caf; border-color: #f5d0fe; }
.hwys-pill--wf-5 { background: #fff7ed; color: #c2410c; border-color: #fed7aa; }
.hwys-pill--wf-6 { background: #fef3c7; color: #b45309; border-color: #fde68a; }
.hwys-pill--wf-7 { background: #ecfdf5; color: #047857; border-color: #a7f3d0; }

.hwys-pill--thought.hwys-pill--ok {
    background: var(--hwys-success-bg);
    color: var(--hwys-ok-badge);
}

.hwys-pill--thought.hwys-pill--warn {
    background: var(--hwys-warn-bg);
    color: var(--hwys-warn-fg);
}

.hwys-pill--thought.hwys-pill--muted {
    background: var(--hwys-surface);
    color: var(--hwys-muted);
}

.hwys-ui-refresh-cell {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.35rem;
    min-width: 6.5rem;
}

.hwys-ui-refresh-cell__meta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
}

.hwys-ui-refresh-cell .hwys-btn--compact {
    align-self: stretch;
    min-height: 32px;
    padding: 0.35rem 0.55rem;
    font-size: 0.8125rem;
    justify-content: center;
}

.hwys-data-table .col-uirefresh {
    vertical-align: top;
    width: 7.25rem;
}

.hwys-data-table .col-batch {
    width: 2.25rem;
    text-align: center;
    vertical-align: middle;
}

.hwys-data-table .col-batch input[type="checkbox"] {
    width: 1rem;
    height: 1rem;
    margin: 0;
}

.hwys-index-batch-form {
    margin: 0;
}

.hwys-index-batch-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
    margin: 0 0 0.75rem;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(88, 86, 214, 0.22);
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(88, 86, 214, 0.06), rgba(255, 45, 85, 0.04));
}

.hwys-index-batch-bar__select {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
}

.hwys-index-batch-bar__hint {
    flex: 1 1 12rem;
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.45;
}

.hwys-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.hwys-ui-refresh-countdown {
    display: inline-block;
    font-size: 0.72rem;
    line-height: 1.25;
    color: var(--hwys-muted);
    font-variant-numeric: tabular-nums;
}

.hwys-ui-refresh-countdown--soon {
    color: var(--hwys-accent, #5856d6);
    font-weight: 600;
}

.hwys-ui-refresh-countdown--due {
    color: var(--hwys-warn-fg, #b45309);
    font-weight: 700;
}

.hwys-progress {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    max-width: 28rem;
}

.hwys-progress__track {
    height: 0.5rem;
    border-radius: 999px;
    background: var(--hwys-surface, #f1f5f9);
    overflow: hidden;
}

.hwys-progress__fill {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #5856d6, #34c759);
    transition: width 0.35s ease;
}

.hwys-progress__label {
    font-size: 0.82rem;
    color: var(--hwys-muted);
    font-variant-numeric: tabular-nums;
}

.hwys-progress--uirefresh .hwys-progress__fill {
    background: linear-gradient(90deg, #f59e0b, #34c759);
}

.hwys-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-height: var(--hwys-touch-min);
    padding: 0.5rem 1rem;
    border-radius: var(--hwys-radius);
    font-size: 0.9375rem;
    font-weight: 600;
    text-decoration: none;
    border: 1px solid transparent;
    cursor: pointer;
    line-height: 1.3;
    white-space: nowrap;
    vertical-align: middle;
    transition: background var(--hwys-transition), border-color var(--hwys-transition), color var(--hwys-transition), box-shadow var(--hwys-transition), transform var(--hwys-transition);
}

button.hwys-btn,
input.hwys-btn[type="submit"],
input.hwys-btn[type="button"] {
    appearance: none;
    -webkit-appearance: none;
    font-family: inherit;
    margin: 0;
}

a.hwys-btn:hover {
    text-decoration: none;
}

.hwys-btn--default {
    background: var(--hwys-bg-elevated);
    border-color: var(--hwys-border);
    color: var(--hwys-text);
    box-shadow: var(--hwys-shadow-sm);
}

@media (hover: hover) {
    .hwys-btn--default:hover {
        background: var(--hwys-surface);
        border-color: var(--hwys-accent);
        box-shadow: var(--hwys-glow-hover);
    }
}

.hwys-btn--primary {
    background: var(--hwys-gradient-brand);
    color: #fff;
    border-color: transparent;
    box-shadow: var(--hwys-shadow-md);
}

@media (hover: hover) {
    .hwys-btn--primary:hover {
        filter: brightness(1.04);
        box-shadow: var(--hwys-glow-hover);
        transform: translateY(-1px);
    }
}

.hwys-btn--accent {
    background: var(--hwys-gradient-joy);
    color: #fff;
    border-color: transparent;
    box-shadow: var(--hwys-shadow-md);
}

@media (hover: hover) {
    .hwys-btn--accent:hover {
        filter: brightness(1.04);
        box-shadow: var(--hwys-glow-hover);
        transform: translateY(-1px);
    }
}

.hwys-btn--ghost {
    background: transparent;
    border-color: var(--hwys-border);
    color: var(--hwys-text);
}

@media (hover: hover) {
    .hwys-btn--ghost:hover {
        background: var(--hwys-accent-soft);
        border-color: var(--hwys-accent);
        color: var(--hwys-accent);
        box-shadow: var(--hwys-glow-hover);
    }
}

.hwys-actions-inline {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}

.hwys-actions-inline > form.hwys-inline-btn-form,
.hwys-actions-inline > .hwys-post-cms-inline-form {
    display: inline-flex;
    align-items: center;
    margin: 0;
}

.hwys-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    background: var(--hwys-bg-elevated);
    border: 1px solid var(--hwys-separator);
    border-radius: var(--hwys-radius-lg);
    box-shadow: var(--hwys-shadow-sm);
    margin-top: 0.75rem;
}

.hwys-data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9375rem;
}

.hwys-data-table th {
    background: var(--hwys-surface);
    font-weight: 700;
    font-size: 0.8125rem;
    text-transform: none;
    letter-spacing: 0.01em;
    position: sticky;
    top: 0;
    z-index: 2;
    white-space: nowrap;
}

.hwys-data-table th,
.hwys-data-table td {
    padding: 0.75rem 0.85rem;
    border-bottom: 1px solid var(--hwys-separator);
    vertical-align: middle;
}

@media (hover: hover) {
    .hwys-data-table tbody tr:hover {
        background: var(--hwys-accent-soft);
    }
}

.hwys-data-table tbody tr:last-child td {
    border-bottom: none;
}

.hwys-data-table .col-name {
    font-weight: 600;
    min-width: 9.5rem;
}

.hwys-data-table .col-admin-no {
    width: 4.5rem;
    white-space: nowrap;
}

.hwys-index-admin-no {
    font-variant-numeric: tabular-nums;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--hwys-muted);
}

.hwys-index-name {
    display: block;
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.35;
}

.hwys-index-next-task {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    max-width: 100%;
    margin: 0;
    padding: 0.38rem 0.72rem;
    border-radius: 999px;
    background: linear-gradient(135deg, #5856d6 0%, #7c3aed 100%);
    border: none;
    color: #fff;
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.35;
    text-decoration: none;
    white-space: normal;
    box-sizing: border-box;
    box-shadow: 0 1px 5px rgba(88, 86, 214, 0.35);
}

.hwys-index-next-task__dot {
    flex-shrink: 0;
    width: 0.42rem;
    height: 0.42rem;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.35);
    animation: hwys-lamp-pulse 2s ease-in-out infinite;
}

.hwys-index-notify {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

body.hwys-page--ops .hwys-index-card a.hwys-index-next-task,
.hwys-index-card a.hwys-index-next-task {
    color: #fff;
    text-decoration: none;
}

.hwys-index-next-task:hover,
.hwys-index-next-task:focus-visible {
    background: linear-gradient(135deg, #4f46e5 0%, #6d28d9 100%);
    color: #fff;
    text-decoration: none;
    box-shadow: 0 2px 8px rgba(88, 86, 214, 0.45);
    transform: translateY(-1px);
}

.hwys-index-next-task--alert {
    background: linear-gradient(135deg, #ff3b30 0%, #ff9500 100%);
    box-shadow: 0 1px 5px rgba(255, 59, 48, 0.35);
}

.hwys-index-next-task--alert:hover,
.hwys-index-next-task--alert:focus-visible {
    background: linear-gradient(135deg, #e6352b 0%, #e68600 100%);
    color: #fff;
}

.hwys-index-next-task--chat {
    background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
    box-shadow: 0 1px 5px rgba(99, 102, 241, 0.35);
}

.hwys-index-next-task--chat:hover,
.hwys-index-next-task--chat:focus-visible {
    background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);
    color: #fff;
}

.hwys-index-next-task--workflow {
    background: linear-gradient(135deg, #5856d6 0%, #4338ca 100%);
}

.hwys-index-next-task--default {
    background: linear-gradient(135deg, #5856d6 0%, #7c3aed 100%);
}

.hwys-index-xserver-alert {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.2rem 0.35rem;
    padding: 0.22rem 0.55rem;
    border-radius: 8px;
    background: rgba(245, 158, 11, 0.1);
    border: 1px solid rgba(245, 158, 11, 0.28);
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.35;
    color: #92400e;
}

.hwys-index-xserver-alert__lbl {
    font-weight: 800;
    color: #b45309;
}

.hwys-index-xserver-alert--soon {
    background: rgba(255, 59, 48, 0.08);
    border-color: rgba(255, 59, 48, 0.28);
    color: #c2410c;
}

.hwys-index-xserver-alert--soon .hwys-index-xserver-alert__lbl {
    color: #dc2626;
}

.hwys-index-xserver-alert--overlap {
    background: rgba(245, 158, 11, 0.14);
    border-color: rgba(217, 119, 6, 0.4);
    color: #92400e;
}

.hwys-index-pubref {
    display: block;
    margin-top: 0.32rem;
    padding: 0;
    border: none;
    background: none;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    color: var(--hwys-accent);
    white-space: nowrap;
    line-height: 1.35;
}

.hwys-index-pubref--empty {
    font-family: var(--hwys-font);
    font-weight: 500;
    letter-spacing: normal;
    font-size: 0.6875rem;
}

.hwys-data-table .col-portal {
    min-width: 10.5rem;
}

.hwys-data-table .col-portal .hwys-actions-inline {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
}

.hwys-data-table .col-portal .hwys-btn {
    min-height: 36px;
    padding: 0 0.75rem;
    font-size: 0.8125rem;
}

.hwys-index-pubref .hwys-id-prefix {
    color: var(--hwys-muted);
    font-weight: 600;
}

.hwys-index-pubref .hwys-id-value {
    color: var(--hwys-accent);
    font-weight: 800;
    font-size: 0.875rem;
    letter-spacing: 0.07em;
}

.hwys-customer-ids {
    margin: -0.35rem 0 1rem;
    font-size: 0.875rem;
    line-height: 1.45;
}

.hwys-customer-ids__pub {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.8125rem;
    background: none;
    padding: 0;
}

.hwys-data-table .col-actions {
    min-width: 11.5rem;
}

.hwys-data-table .col-hearing,
.hwys-data-table .col-ops {
    vertical-align: top;
    width: 6.75rem;
}

.hwys-data-table .col-ops-main {
    vertical-align: top;
    width: 13.5rem;
    min-width: 13.5rem;
    max-width: 13.5rem;
    padding-inline: 0.4rem;
}

.hwys-data-table .col-dates {
    min-width: 9.5rem;
    font-size: 0.78rem;
}

.hwys-data-table .col-updated {
    font-size: 0.78rem;
    white-space: nowrap;
}

.hwys-index-action-grid {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.hwys-index-action-grid__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.35rem;
}

.hwys-index-action-grid__row > .hwys-btn,
.hwys-index-action-grid__row > a.hwys-btn,
.hwys-index-action-grid__row > button.hwys-btn {
    width: 100%;
    min-height: 36px;
    padding-inline: 0.45rem;
    justify-content: center;
    box-sizing: border-box;
    white-space: nowrap;
    font-size: 0.78rem;
}

.hwys-btn--disabled {
    opacity: 0.45;
    pointer-events: none;
}

.hwys-index-dates {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.hwys-index-dates__row {
    display: grid;
    grid-template-columns: 2.2rem 1fr;
    gap: 0.35rem;
    align-items: start;
}

.hwys-index-dates__lbl {
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--hwys-muted);
    line-height: 1.35;
}

.hwys-index-dates time {
    font-variant-numeric: tabular-nums;
    line-height: 1.35;
}

.hwys-index-site-link {
    display: inline-block;
    margin-top: 0.2rem;
    font-size: 0.72rem;
    text-decoration: none;
}

.hwys-index-site-link:hover {
    text-decoration: underline;
}

.hwys-index-config-warn {
    line-height: 1.55;
    scroll-margin-top: 5rem;
}

.hwys-index-config-warn__steps {
    margin: 0.65rem 0 0;
    padding-left: 1.25rem;
    font-size: 0.875rem;
}

.hwys-index-config-warn__note {
    margin: 0.5rem 0 0;
    font-size: 0.88rem;
}

.hwys-index-config-warn__bookmark {
    margin: 0.35rem 0 0;
    font-size: 0.9rem;
}

.hwys-index-config-warn__steps li + li {
    margin-top: 0.35rem;
}

.hwys-index-pc-sync {
    margin: 0 0 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(37, 99, 235, 0.22);
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.06), rgba(88, 86, 214, 0.04));
}

.hwys-index-pc-sync__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
}

.hwys-index-pc-sync__lead {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 12rem;
}

.hwys-index-pc-sync__lead strong {
    font-size: 0.95rem;
}

.hwys-index-pc-sync__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem;
}

.hwys-index-pc-sync__status {
    font-size: 0.82rem;
    max-width: 22rem;
    line-height: 1.4;
}

.hwys-index-pc-sync__help {
    margin-top: 0.55rem;
    font-size: 0.78rem;
}

.hwys-index-pc-sync__help summary {
    cursor: pointer;
}

.hwys-filter-actions {
    margin: 0.65rem 0 0;
    padding: 0.75rem 1rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
    border: 1px solid rgba(37, 99, 235, 0.18);
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.05), rgba(88, 86, 214, 0.03));
}

.hwys-filter-actions__group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem 0.75rem;
}

.hwys-filter-actions__label {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--hwys-muted, #64748b);
    margin-right: 0.15rem;
}

.hwys-filter-actions__status {
    font-size: 0.82rem;
    max-width: 20rem;
    line-height: 1.4;
}

.hwys-filter-actions__hint {
    font-size: 0.82rem;
}

.hwys-filter-actions__form {
    display: inline;
    margin: 0;
}

.hwys-filter-actions__help {
    flex: 1 1 100%;
    margin: 0;
    font-size: 0.78rem;
}

.hwys-filter-actions__help summary {
    cursor: pointer;
}

.hwys-filter-actions__help-list {
    margin: 0.35rem 0 0;
    padding-left: 1.15rem;
    line-height: 1.5;
}

/* —— 顧客一覧：フィルタ · KPI · テーブル —— */
.hwys-filter-form {
    margin-top: 0.85rem;
    padding: 1rem 1.1rem;
}

.hwys-filter-form__primary {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.65rem 1rem;
}

.hwys-filter-form__field {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--hwys-text-muted, #64748b);
}

.hwys-filter-form__field--search input {
    min-width: min(100%, 16rem);
}

.hwys-filter-form__field select,
.hwys-filter-form__field input[type="search"] {
    padding: 0.45rem 0.55rem;
    border: 1px solid var(--hwys-border, #e2e8f0);
    border-radius: var(--hwys-radius, 8px);
    font-size: 0.9rem;
    font-weight: 400;
    color: var(--hwys-text, #0f172a);
    background: #fff;
}

.hwys-filter-form__advanced {
    margin-top: 0.75rem;
    padding-top: 0.65rem;
    border-top: 1px dashed var(--hwys-border, #e2e8f0);
}

.hwys-filter-form__advanced summary {
    cursor: pointer;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--hwys-text-muted, #64748b);
    margin-bottom: 0.5rem;
}

.hwys-filter-form__advanced-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem 1.25rem;
    align-items: center;
}

.hwys-filter-form__check {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--hwys-text-muted, #64748b);
}

.hwys-filter-chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.55rem;
    margin: 0.55rem 0 0;
}

.hwys-filter-chips__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.6rem;
    font-size: 0.8rem;
    border-radius: 999px;
    background: rgba(88, 86, 214, 0.1);
    color: #4338ca;
    text-decoration: none;
    border: 1px solid rgba(88, 86, 214, 0.2);
}

.hwys-filter-chips__chip:hover {
    background: rgba(88, 86, 214, 0.16);
}

.hwys-filter-chips__clear {
    font-size: 0.8rem;
    margin-left: 0.25rem;
}

.hwys-index-kpi {
    margin: 0.75rem 0 0;
    grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
}

.hwys-index-kpi__card {
    text-decoration: none;
    color: inherit;
}

.hwys-index-result {
    margin: 0.65rem 0 0.35rem;
    font-size: 0.85rem;
}

.hwys-data-table__group-row th {
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--hwys-text-muted, #94a3b8);
    background: rgba(248, 250, 252, 0.95);
    border-bottom: 1px solid var(--hwys-border, #e2e8f0);
    padding-top: 0.45rem;
    padding-bottom: 0.35rem;
}

.hwys-index-status-stack {
    gap: 0.28rem;
    align-items: stretch;
    width: 100%;
    max-width: none;
    margin-inline: auto;
}

.hwys-index-status-stack > .hwys-pill,
.hwys-index-status-stack > .hwys-index-chip {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 1.85rem;
    padding: 0.2rem 0.45rem;
    box-sizing: border-box;
    text-align: center;
    white-space: normal;
    line-height: 1.25;
    border: 1px solid transparent;
}

.hwys-index-status-stack > .hwys-pill--wf {
    border-color: var(--hwys-border);
}

.hwys-index-status-stack > .hwys-index-chip--portal-inbox {
    border-color: rgba(255, 59, 48, 0.18);
}

.hwys-index-status-stack__uirefresh {
    width: 100%;
    font-size: 0.82rem;
}

.hwys-index-status-stack .hwys-ui-refresh-cell {
    min-width: 0;
    width: 100%;
    gap: 0.28rem;
    align-items: stretch;
}

.hwys-index-status-stack .hwys-ui-refresh-cell__meta {
    width: 100%;
    align-items: stretch;
    gap: 0.28rem;
}

.hwys-index-status-stack .hwys-ui-refresh-cell__meta > .hwys-pill,
.hwys-index-status-stack .hwys-ui-refresh-cell__meta > .hwys-ui-refresh-countdown {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 1.85rem;
    padding: 0.2rem 0.45rem;
    box-sizing: border-box;
    text-align: center;
    line-height: 1.25;
}

.hwys-index-status-stack .hwys-ui-refresh-cell .hwys-btn--compact {
    display: flex;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    align-self: stretch;
    margin: 0;
    min-height: 1.85rem;
    padding: 0.2rem 0.45rem;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.2;
    border-radius: calc(var(--hwys-radius) - 2px);
    justify-content: center;
    white-space: nowrap;
}

/* 顧客一覧 — 操作列（上段フル幅 + 2列ツール + 2列顧客） */
.hwys-index-ops {
    display: flex;
    flex-direction: column;
    gap: 0.34rem;
    width: 100%;
    max-width: 13.5rem;
    box-sizing: border-box;
}

.hwys-index-ops__primary {
    width: 100%;
}

.hwys-index-ops__primary .hwys-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 2.05rem;
    padding: 0.28rem 0.5rem;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.2;
    border-radius: calc(var(--hwys-radius) - 2px);
    box-sizing: border-box;
    text-decoration: none;
    white-space: nowrap;
}

.hwys-index-ops__primary .hwys-btn--accent {
    background: linear-gradient(135deg, #5856d6 0%, #7c3aed 100%);
    color: #fff;
    border: none;
    box-shadow: 0 1px 5px rgba(88, 86, 214, 0.3);
}

.hwys-index-ops__tools,
.hwys-index-ops__customer {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.3rem;
    width: 100%;
}

.hwys-index-ops__customer {
    padding-top: 0.34rem;
    margin-top: 0.05rem;
    border-top: 1px dashed rgba(60, 60, 67, 0.14);
}

.hwys-index-ops .hwys-index-ops__chip,
.hwys-index-ops__tools .hwys-btn,
.hwys-index-ops__customer .hwys-btn,
.hwys-index-ops__tools summary.hwys-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
    min-height: 1.9rem;
    max-height: 1.9rem;
    padding: 0.2rem 0.38rem;
    font-size: 0.6875rem;
    font-weight: 600;
    line-height: 1.15;
    box-sizing: border-box;
    border: 1px solid rgba(60, 60, 67, 0.14);
    border-radius: calc(var(--hwys-radius) - 2px);
    box-shadow: none;
    transform: none;
    filter: none;
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: pointer;
    background: #fff;
    color: var(--hwys-text, #1c1c1e);
}

.hwys-index-ops .hwys-btn--disabled {
    opacity: 0.42;
    filter: grayscale(0.35);
    pointer-events: none;
    cursor: default;
}

.hwys-index-ops__chip.is-unread {
    position: relative;
    font-weight: 800;
    border-color: #818cf8;
    background: #eef2ff;
    color: #4338ca;
}

.hwys-index-ops__chip.is-unread::after {
    content: "";
    position: absolute;
    top: 0.2rem;
    right: 0.2rem;
    width: 0.36rem;
    height: 0.36rem;
    border-radius: 999px;
    background: #ff3b30;
    box-shadow: 0 0 0 1px #fff;
}

.hwys-index-ops__chip.is-emphasis {
    font-weight: 800;
    border-color: #a78bfa;
    background: #f5f3ff;
    color: #6d28d9;
}

.hwys-index-ops__chip--hearing {
    background: #eff6ff;
    border-color: #bfdbfe;
    color: #1d4ed8;
}

.hwys-index-ops__chip--handoff {
    background: #ecfdf5;
    border-color: #a7f3d0;
    color: #047857;
}

.hwys-index-ops__chip--meta {
    background: #f5f3ff;
    border-color: #ddd6fe;
    color: #6d28d9;
}

.hwys-index-ops__chip--login {
    background: #fff7ed;
    border-color: #fed7aa;
    color: #c2410c;
}

.hwys-index-ops__chip--chat {
    background: #eef2ff;
    border-color: #c7d2fe;
    color: #4338ca;
}

.hwys-index-ops__chip--assets {
    background: #f0f9ff;
    border-color: #bae6fd;
    color: #0369a1;
}

.hwys-index-ops__chip--portal {
    background: #f8fafc;
    border-color: #e2e8f0;
    color: #475569;
}

.hwys-index-ops__chip--prod {
    background: #f8fafc;
    border-color: #cbd5e1;
    color: #334155;
}

.hwys-index-ops .hwys-index-prod-menu {
    display: block;
    width: 100%;
    min-width: 0;
    margin: 0;
    position: relative;
}

.hwys-index-ops .hwys-index-prod-menu summary {
    list-style: none;
}

.hwys-index-ops .hwys-index-prod-menu summary::-webkit-details-marker {
    display: none;
}

@media (hover: hover) {
    .hwys-index-ops__primary .hwys-btn--accent:hover {
        filter: brightness(1.04);
        box-shadow: 0 2px 8px rgba(88, 86, 214, 0.4);
        transform: translateY(-1px);
    }

    .hwys-index-ops__chip--hearing:hover {
        background: #dbeafe;
        border-color: #93c5fd;
    }

    .hwys-index-ops__chip--handoff:hover {
        background: #d1fae5;
        border-color: #6ee7b7;
    }

    .hwys-index-ops__chip--meta:hover,
    .hwys-index-ops__chip.is-emphasis:hover {
        background: #ede9fe;
        border-color: #c4b5fd;
    }

    .hwys-index-ops__chip--login:hover {
        background: #ffedd5;
        border-color: #fdba74;
    }

    .hwys-index-ops__chip--chat:hover,
    .hwys-index-ops__chip.is-unread:hover {
        background: #e0e7ff;
        border-color: #a5b4fc;
    }

    .hwys-index-ops__chip--assets:hover {
        background: #e0f2fe;
        border-color: #7dd3fc;
    }

    .hwys-index-ops__chip--portal:hover {
        background: #f1f5f9;
        border-color: #cbd5e1;
    }

    .hwys-index-ops__chip--prod:hover {
        background: #f1f5f9;
        border-color: #94a3b8;
    }
}

.hwys-app-nav a.hwys-app-nav__locked {
    opacity: 0.88;
    cursor: pointer;
    color: #b45309;
    background: rgba(251, 191, 36, 0.12);
    border: 1px dashed rgba(217, 119, 6, 0.45);
    gap: 0.35rem;
}

.hwys-app-nav a.hwys-app-nav__locked-tag {
    font-size: 0.62rem;
    font-weight: 700;
    line-height: 1;
    padding: 0.15rem 0.35rem;
    border-radius: 999px;
    background: rgba(217, 119, 6, 0.15);
    color: #b45309;
}

@media (hover: hover) {
    .hwys-app-nav a.hwys-app-nav__locked:hover {
        background: rgba(251, 191, 36, 0.22);
        color: #92400e;
        border-color: rgba(217, 119, 6, 0.65);
        box-shadow: none;
    }
}

.hwys-app-nav a.is-disabled,
.hwys-app-nav a.hwys-app-nav__disabled {
    opacity: 0.55;
    cursor: pointer;
}

.hwys-index-ops__secondary {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem 0.4rem;
    align-items: center;
}

.hwys-index-prod-menu {
    position: relative;
    display: block;
    width: 100%;
    min-width: 0;
}

.hwys-index-prod-menu summary {
    list-style: none;
    cursor: pointer;
}

.hwys-index-prod-menu summary::-webkit-details-marker {
    display: none;
}

.hwys-index-prod-menu__links {
    position: absolute;
    z-index: 20;
    top: calc(100% + 0.25rem);
    left: 0;
    min-width: 9rem;
    padding: 0.35rem 0;
    background: #fff;
    border: 1px solid var(--hwys-border, #e2e8f0);
    border-radius: var(--hwys-radius, 8px);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
}

.hwys-index-prod-menu__links a {
    display: block;
    padding: 0.4rem 0.75rem;
    font-size: 0.82rem;
    color: var(--hwys-text, #0f172a);
    text-decoration: none;
}

.hwys-index-prod-menu__links a:hover {
    background: rgba(88, 86, 214, 0.06);
}

.hwys-index-meta-stack {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: 0.82rem;
}

.hwys-index-meta-stack__updated {
    font-size: 0.78rem;
}

body.hwys-page--ops .hwys-data-table .col-status {
    min-width: 7.75rem;
    width: 7.75rem;
    max-width: 7.75rem;
    padding-inline: 0.4rem;
    text-align: center;
}

body.hwys-page--ops .hwys-data-table th.col-status {
    text-align: center;
    white-space: normal;
    line-height: 1.35;
}

body.hwys-page--ops .hwys-data-table .col-meta {
    min-width: 7.5rem;
}

.hwys-index-trash-countdown {
    display: block;
    font-size: 0.76rem;
    line-height: 1.35;
    color: #b45309;
}

.hwys-index-trash-countdown--auto {
    color: #c2410c;
}

.hwys-index-trash-form {
    margin: 0.15rem 0 0;
}

.hwys-index-trash-btn {
    width: 100%;
    justify-content: center;
    font-size: 0.78rem;
    padding: 0.25rem 0.45rem;
}

.hwys-index-trash-btn--move {
    color: #64748b;
}

.hwys-index-trash-banner {
    margin-bottom: 0.75rem;
}

.hwys-pc-bridge-hint {
    margin: 0.35rem 0 0;
    font-size: 0.82rem;
    line-height: 1.45;
    max-width: 42rem;
}

.hwys-pc-bridge-hint--ok {
    color: #15803d;
}

.hwys-pc-bridge-hint--warn {
    color: #b45309;
    font-weight: 600;
}

.hwys-index-dates__row--cancel time,
.hwys-index-dates__row--cancel span {
    color: #c2410c;
    font-weight: 600;
}

.hwys-index-alert-lamp--trash .hwys-index-alert-lamp__dot {
    background: #64748b;
}

.hwys-index-alert-lamp--trash .hwys-index-alert-lamp__count {
    color: #64748b;
}

tr.hwys-index-row--alert {
    background: linear-gradient(90deg, rgba(245, 158, 11, 0.07), transparent);
    box-shadow: inset 3px 0 0 #f59e0b;
}

.hwys-index-row td {
    vertical-align: top;
    padding-top: 0.85rem;
    padding-bottom: 0.85rem;
}

.hwys-index-card {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    min-width: 11rem;
}

.hwys-index-card__head {
    display: block;
}

.hwys-index-card__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem 0.4rem;
}

.hwys-index-chip {
    display: inline-block;
    padding: 0.12rem 0.45rem;
    font-size: 0.72rem;
    font-weight: 600;
    border-radius: 999px;
    line-height: 1.35;
}

.hwys-index-chip--hearing {
    background: rgba(37, 99, 235, 0.1);
    color: #1d4ed8;
}

.hwys-index-chip--placement {
    background: rgba(100, 116, 139, 0.12);
    color: #475569;
}

.hwys-index-chip--draft {
    background: rgba(245, 158, 11, 0.12);
    color: #b45309;
}

.hwys-index-card__links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.65rem;
    font-size: 0.8rem;
}

.hwys-index-card__links a {
    color: #4338ca;
    text-decoration: none;
}

.hwys-index-card__links a:hover {
    text-decoration: underline;
}

.hwys-index-portal-link {
    font-weight: 500;
}

.hwys-index-dates__row--sub {
    opacity: 0.88;
    font-size: 0.78rem;
}

body.hwys-page--ops .hwys-data-table .col-name {
    min-width: 13rem;
}

.hwys-data-table--batch .col-batch {
    width: 2rem;
}

/* 顧客ポータル — UI/UX 更新パネル · 対応状況 */
.hwys-portal-panel--uirefresh .hwys-portal-panel__badge--uirefresh {
    background: linear-gradient(135deg, #5856d6, #2563eb);
}

.hwys-portal-uirefresh-status {
    margin: 0 0 0.75rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
}

.hwys-portal-uirefresh-notice {
    margin: 0.75rem 0 0.35rem;
    line-height: 1.55;
}

.hwys-portal-uirefresh-compact__link {
    margin: 0.35rem 0 0;
    font-size: 0.85rem;
}

.hwys-pill--ops.hwys-pill--warn {
    background: rgba(245, 158, 11, 0.14);
    color: #b45309;
}

.hwys-pill--ops.hwys-pill--ok {
    background: rgba(34, 197, 94, 0.14);
    color: #15803d;
}

@media (max-width: 960px) {
    body.hwys-page--ops .hwys-data-table .col-dates,
    body.hwys-page--ops .hwys-data-table .col-meta {
        display: none;
    }

    body.hwys-page--ops .hwys-data-table .col-name {
        position: sticky;
        left: 0;
        z-index: 2;
        background: #fff;
        box-shadow: 2px 0 6px rgba(15, 23, 42, 0.04);
    }
}

@media (max-width: 640px) {
    .hwys-filter-form__primary {
        flex-direction: column;
        align-items: stretch;
    }

    .hwys-index-kpi {
        grid-template-columns: 1fr 1fr;
    }

    body.hwys-page--ops .hwys-data-table__group-row {
        display: none;
    }
}

.hwys-index-cell-stack {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.35rem;
}

.hwys-index-cell-stack > .hwys-btn {
    width: 100%;
    min-height: 36px;
    padding-inline: 0.65rem;
    justify-content: center;
    box-sizing: border-box;
    white-space: nowrap;
}

.hwys-index-handoff-empty {
    font-size: 0.72rem;
    grid-column: 1 / -1;
    text-align: center;
}

/* 顧客案内モーダル（一覧・メタ共通） */
.hwys-handoff-modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.hwys-handoff-modal[hidden] {
    display: none !important;
}

body.hwys-handoff-modal-open {
    overflow: hidden;
}

.hwys-handoff-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    backdrop-filter: blur(2px);
}

.hwys-handoff-modal__panel {
    position: relative;
    width: min(100%, 34rem);
    max-height: min(92vh, 42rem);
    overflow: auto;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 24px 60px rgba(15, 23, 42, 0.18);
    padding: 1.15rem 1.25rem 1rem;
}

.hwys-handoff-modal__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.35rem;
}

.hwys-handoff-modal__eyebrow {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--hwys-accent);
    text-transform: uppercase;
}

.hwys-handoff-modal__title {
    margin: 0.15rem 0 0;
    font-size: 1.15rem;
    line-height: 1.3;
}

.hwys-handoff-modal__close {
    border: none;
    background: transparent;
    font-size: 1.5rem;
    line-height: 1;
    color: var(--hwys-muted);
    cursor: pointer;
    padding: 0.15rem 0.35rem;
    border-radius: 8px;
}

.hwys-handoff-modal__close:hover {
    background: var(--hwys-surface);
    color: var(--hwys-text);
}

.hwys-handoff-modal__lead {
    margin: 0 0 0.85rem;
    font-size: 0.86rem;
    line-height: 1.5;
}

.hwys-handoff-modal__body {
    margin-bottom: 0.85rem;
}

.hwys-handoff-modal__foot,
.hwys-handoff-modal__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0.85rem 0 0;
}

.hwys-handoff-fields {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.hwys-handoff-field__label {
    display: block;
    margin-bottom: 0.25rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--hwys-muted);
}

.hwys-handoff-field__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.45rem;
    align-items: stretch;
}

.hwys-handoff-field__input {
    width: 100%;
    min-width: 0;
    padding: 0.55rem 0.65rem;
    border: 1px solid var(--hwys-border);
    border-radius: 10px;
    font-size: 0.82rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    background: var(--hwys-surface);
    color: var(--hwys-text);
}

.hwys-handoff-field__row .hwys-btn {
    min-height: 40px;
    white-space: nowrap;
}

.info-box {
    background: var(--hwys-info-bg);
    color: var(--hwys-info-fg);
    padding: 0.75rem 1rem;
    border-radius: 8px;
    margin: 0.75rem 0;
    font-size: 0.9rem;
}

.warn-box {
    background: var(--hwys-warn-bg);
    color: var(--hwys-warn-fg);
    padding: 0.75rem 1rem;
    border-radius: 8px;
    margin: 0.75rem 0;
    font-size: 0.9rem;
}

body.hwys-page--form,
body.hwys-page--portal,
body.hwys-page--customer {
    background: var(--hwys-gradient-calm);
    background-attachment: fixed;
}

body.hwys-page--form main,
body.hwys-page--customer main {
    background: transparent;
}

.hwys-home-grid {
    display: grid;
    gap: 1rem;
    margin: 1rem 0 1.25rem;
}

@media (min-width: 720px) {
    .hwys-home-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1100px) {
    body.hwys-page--home-select .hwys-home-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.hwys-page--home-select .hwys-home-select-shell {
        max-width: 56rem;
    }
}

.hwys-home-choice {
    position: relative;
    display: flex;
    flex-direction: column;
    border: 2px solid var(--hwys-separator);
    border-radius: var(--hwys-radius-xl);
    padding: 1rem 1.05rem 1.05rem;
    background: var(--hwys-bg-elevated);
    box-shadow: var(--hwys-shadow-sm);
    transition: border-color var(--hwys-transition), box-shadow var(--hwys-transition), transform var(--hwys-transition);
}

@media (hover: hover) {
    .hwys-home-choice:hover {
        border-color: rgba(88, 86, 214, 0.35);
        box-shadow: var(--hwys-shadow-md);
        transform: translateY(-2px);
    }
}

.hwys-home-choice:has(input:checked) {
    border-color: var(--hwys-accent);
    box-shadow: 0 0 0 3px var(--hwys-accent-soft), var(--hwys-shadow-md);
    background: linear-gradient(180deg, #f5f3ff 0%, #fff 22%);
}

.hwys-home-choice__radio {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    margin: 0;
    pointer-events: none;
}

.hwys-home-choice__head {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    cursor: pointer;
    min-height: var(--hwys-touch-min);
    margin: 0;
    padding: 0.15rem 0;
}

.hwys-home-choice__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 12px;
    background: var(--hwys-gradient-joy);
    color: #fff;
    font-family: var(--hwys-font-display);
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: -0.02em;
    box-shadow: var(--hwys-shadow-sm);
}

.hwys-home-choice__text {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.hwys-home-choice__title {
    font-size: 1.05rem;
    line-height: 1.35;
}

.hwys-home-choice__hint {
    font-size: 0.8125rem;
}

.hwys-home-choice:has(input:checked) .hwys-home-choice__hint {
    color: #5856d6;
    font-weight: 600;
}

.hwys-home-choice:has(input:checked) .hwys-home-choice__hint::after {
    content: ' ✓';
}

.hwys-home-choice__notes {
    margin: 0.35rem 0 0 3.1rem;
    font-size: 0.875rem;
    line-height: 1.45;
}

.hwys-home-preview-wrap {
    margin-top: 0.85rem;
    border-radius: var(--hwys-radius);
    overflow: hidden;
    border: 1px solid var(--hwys-separator);
    background: #fff;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.hwys-home-preview {
    display: block;
    width: 100%;
    min-height: 14rem;
    height: clamp(14rem, 38vw, 20rem);
    margin: 0;
    border: none;
    border-radius: 0;
    background: #fff;
}

/* --- HOME 案選択（顧客） --- */
body.hwys-page--home-select {
    margin: 0;
    padding: 0;
    max-width: none;
}

body.hwys-page--home-select main#hwys-main {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
}

.hwys-home-select-shell {
    max-width: 52rem;
}

.hwys-home-select-hero {
    text-align: center;
}

.hwys-home-select-hero__eyebrow {
    margin: 0 0 0.35rem;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--hwys-muted);
}

body.hwys-page--home-select .hwys-form-hero h1 {
    font-family: var(--hwys-font-display);
    font-size: clamp(1.35rem, 4vw, 1.9rem);
    letter-spacing: -0.03em;
    background: var(--hwys-gradient-joy);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.hwys-home-select-panel {
    margin-bottom: 1.25rem;
    padding: 1.15rem 1.25rem;
    border-radius: var(--hwys-radius-xl);
    border: 1px solid var(--hwys-separator);
    border-top: 4px solid #5856d6;
    background: linear-gradient(180deg, #f5f3ff 0%, #fff 20%);
    box-shadow: var(--hwys-shadow-md);
}

.hwys-home-select-panel__title {
    margin: 0 0 0.65rem;
    font-family: var(--hwys-font-display);
    font-size: 1.05rem;
    font-weight: 700;
}

.hwys-home-select-steps {
    margin: 0;
    padding-left: 1.25rem;
    line-height: 1.55;
    font-size: 0.9375rem;
}

.hwys-home-select-steps li + li {
    margin-top: 0.35rem;
}

body.hwys-page--home-select form {
    padding-bottom: calc(5.5rem + env(safe-area-inset-bottom, 0));
}

.hwys-home-select-actions {
    margin-left: calc(-1 * clamp(0.85rem, 3vw, 1.25rem));
    margin-right: calc(-1 * clamp(0.85rem, 3vw, 1.25rem));
}

body.hwys-page--home-select .hwys-home-select-actions button[type="submit"] {
    width: 100%;
    min-height: var(--hwys-touch-min);
    font-size: 1.05rem;
    font-weight: 700;
    border-radius: var(--hwys-radius);
}

@media (max-width: 719px) {
    .hwys-home-choice__notes {
        margin-left: 0;
    }

    .hwys-home-preview {
        min-height: 12rem;
        height: 14rem;
    }
}

.hwys-home-choice label {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 0.65rem;
    cursor: pointer;
    margin-top: 0;
    font-size: 1rem;
}

.hwys-dash-card--alert {
    border-color: #fcd34d;
    background: linear-gradient(180deg, #fffbeb 0%, #fff 40%);
}

.hwys-dash-card--alert .hwys-dash-card__metric {
    color: var(--hwys-warn-fg);
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: none;
    box-shadow: var(--hwys-glow-focus);
    border-color: var(--hwys-accent);
}

.actions button[data-hwys-submit-action="save"],
.actions button[name="action"][value="save"],
body.hwys-page--customer button[type="submit"]:not(.secondary):not([data-hwys-submit-action="autosave"]):not(.hwys-hearing-section-actions__save):not(.hwys-hearing-section-actions__done):not(.hwys-hearing-section-actions__edit) {
    background: var(--hwys-gradient-joy);
    color: #fff;
    border: none;
    box-shadow: var(--hwys-shadow-md);
    font-weight: 700;
    min-height: var(--hwys-touch-min);
    border-radius: var(--hwys-radius);
    font-size: 1rem;
}

@media (hover: hover) {
    .actions button[data-hwys-submit-action="save"]:hover,
    .actions button[name="action"][value="save"]:hover,
    body.hwys-page--customer button[type="submit"]:not(.secondary):not([data-hwys-submit-action="autosave"]):not(.hwys-hearing-section-actions__save):not(.hwys-hearing-section-actions__done):not(.hwys-hearing-section-actions__edit):hover {
        filter: brightness(1.04);
        box-shadow: var(--hwys-glow-hover);
        transform: translateY(-1px);
    }
}

body.hwys-page--customer .actions button[data-hwys-submit-action="autosave"],
body.hwys-page--customer .actions button[name="action"][value="autosave"] {
    background: var(--hwys-bg-elevated);
    border: 2px solid var(--hwys-primary);
    color: var(--hwys-primary);
    font-weight: 600;
    min-height: var(--hwys-touch-min);
    border-radius: var(--hwys-radius);
}

.hwys-toolbar-links {
    margin: 0 0 1rem;
    font-size: 0.85rem;
}

body.hwys-page--edit.hwys-page--shell {
    max-width: none;
    margin: 0;
    padding: 0;
}

/* キーボード: 先頭のナビを飛ばして本文へ */
a.hwys-skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 200;
    padding: 0.45rem 0.85rem;
    background: var(--hwys-text);
    color: #fff;
    font-weight: 600;
    font-size: 0.9rem;
    border-radius: 6px;
    text-decoration: none;
}
a.hwys-skip-link:focus {
    left: 1rem;
    top: 1rem;
    outline: 2px solid #2563eb;
    outline-offset: 2px;
}
main#hwys-main:focus {
    outline: none;
}
main#hwys-main:focus-visible {
    outline: 2px solid #93c5fd;
    outline-offset: 6px;
}

body.hwys-page--wide {
    max-width: 1100px;
    margin: 2rem auto;
    padding: 0 1rem 3rem;
}

body.hwys-page--form {
    margin: 0;
    padding: 0;
    max-width: none;
    font-size: 1.0625rem;
    line-height: 1.6;
    --hwys-form-sticky-h: 3.25rem;
}

body.hwys-page--form main#hwys-main {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
}

.hwys-form-shell {
    width: 100%;
    max-width: 48rem;
    margin-left: auto;
    margin-right: auto;
    padding: clamp(1rem, 3vw, 2rem) clamp(0.85rem, 3vw, 1.25rem) 3rem;
    box-sizing: border-box;
}

.hwys-form-hero {
    text-align: center;
}

body.hwys-page--form h2.hwys-section-h {
    scroll-margin-top: calc(var(--hwys-form-sticky-h) + 1rem);
    margin: 0;
    border-bottom: none;
    padding-bottom: 0;
    font-size: 1.12rem;
}

.hwys-form-hero {
    position: relative;
    margin-bottom: 1.35rem;
    padding: 1.35rem 1.35rem 1.25rem 1.5rem;
    border: 1px solid var(--hwys-separator);
    border-radius: var(--hwys-radius-xl);
    background: rgba(255, 255, 255, 0.88);
    backdrop-filter: saturate(180%) blur(16px);
    -webkit-backdrop-filter: saturate(180%) blur(16px);
    box-shadow: var(--hwys-shadow-lg);
    overflow: hidden;
}

.hwys-form-hero::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 5px;
    background: var(--hwys-gradient-joy);
}

.hwys-form-hero h1 {
    margin: 0;
    font-size: 1.45rem;
    letter-spacing: -0.02em;
    background: var(--hwys-gradient-joy);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.hwys-form-hero__intro {
    margin: 0.85rem auto 0;
    max-width: 34rem;
    text-align: center;
}

.hwys-form-hero__tagline-lead,
.hwys-form-hero__tagline-sub {
    margin: 0;
    line-height: 1.65;
    text-wrap: pretty;
}

.hwys-form-hero__tagline-lead {
    font-size: clamp(0.95rem, 2.6vw, 1.05rem);
    font-weight: 600;
    color: var(--hwys-text);
}

.hwys-form-hero__tagline-sub {
    margin-top: 0.45rem;
    font-size: clamp(0.88rem, 2.3vw, 0.95rem);
    color: #64748b;
}

.hwys-form-hero__promise {
    margin: 1.1rem auto 0;
    max-width: 34rem;
    padding: 1rem 1.2rem;
    text-align: center;
    border-radius: var(--hwys-radius-lg);
    background: linear-gradient(135deg, rgba(88, 86, 214, 0.07) 0%, rgba(255, 45, 85, 0.05) 55%, rgba(255, 255, 255, 0.6) 100%);
    border: 1px solid rgba(88, 86, 214, 0.14);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

.hwys-form-hero__promise p {
    margin: 0;
    font-size: clamp(0.88rem, 2.3vw, 0.96rem);
    line-height: 1.75;
    font-weight: 500;
    color: #334155;
    text-wrap: pretty;
}

.hwys-form-hero__promise p + p {
    margin-top: 0.2rem;
}

.hwys-form-hero__company {
    margin: 0.5rem 0 0;
    font-size: clamp(1.05rem, 3vw, 1.2rem);
}

.hwys-form-hero__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.5rem 1rem;
    margin-top: 1rem;
}

.hwys-form-hero__stamp {
    font-size: 0.82rem;
}

.hwys-form-nav {
    position: sticky;
    top: 0;
    z-index: 40;
    display: flex;
    flex-wrap: nowrap;
    gap: 0.5rem;
    overflow-x: auto;
    margin: 0 -1rem 1.25rem;
    padding: 0.65rem 1rem;
    background: rgba(255, 255, 255, 0.78);
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    border-bottom: 1px solid var(--hwys-separator);
    box-shadow: var(--hwys-shadow-sm);
    scrollbar-width: none;
}

.hwys-form-nav::-webkit-scrollbar {
    display: none;
}

.hwys-form-nav a {
    flex: 0 0 auto;
    min-height: 36px;
    padding: 0.45rem 0.85rem;
    border-radius: 999px;
    border: 1px solid var(--hwys-separator);
    background: var(--hwys-bg-elevated);
    color: var(--hwys-text);
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    transition: box-shadow var(--hwys-transition), transform var(--hwys-transition), background var(--hwys-transition);
}

.hwys-form-nav a:nth-child(3n+1) { border-color: rgba(0, 122, 255, 0.25); background: rgba(0, 122, 255, 0.08); }
.hwys-form-nav a:nth-child(3n+2) { border-color: rgba(88, 86, 214, 0.25); background: rgba(88, 86, 214, 0.08); }
.hwys-form-nav a:nth-child(3n)   { border-color: rgba(255, 45, 85, 0.2); background: rgba(255, 45, 85, 0.07); }

@media (hover: hover) {
    .hwys-form-nav a:hover {
        transform: translateY(-1px);
        box-shadow: var(--hwys-glow-hover);
        text-decoration: none;
    }
}

.hwys-form-section {
    margin-bottom: 1.35rem;
    padding: 1.15rem 1.25rem 1.25rem 1.15rem;
    background: var(--hwys-bg-elevated);
    border: 1px solid var(--hwys-separator);
    border-left: 4px solid var(--hwys-sec-accent, #5856d6);
    border-radius: var(--hwys-radius-lg);
    box-shadow: var(--hwys-shadow-sm);
    transition: box-shadow var(--hwys-transition), transform var(--hwys-transition);
}

@media (hover: hover) {
    .hwys-form-section:hover {
        box-shadow: var(--hwys-shadow-md);
        transform: translateY(-1px);
    }
}

.hwys-form-section--highlight {
    border-color: #c4b5fd;
    border-left-width: 5px;
    background: linear-gradient(165deg, #faf5ff 0%, #fff 35%, #fdf4ff 100%);
}

.hwys-form-section--highlight#sec-mind-resolution {
    --hwys-sec-accent: #8b5cf6;
    background: linear-gradient(165deg, #f5f3ff 0%, #fff 40%, #ede9fe 100%);
}

.hwys-form-section--highlight#sec-mind-soul {
    --hwys-sec-accent: #ec4899;
    background: linear-gradient(165deg, #fdf2f8 0%, #fff 40%, #fce7f3 100%);
}

.hwys-form-section--muted {
    background: var(--hwys-surface);
}

.hwys-section-head {
    margin-bottom: 0.65rem;
}

.hwys-section-lead {
    margin: 0.35rem 0 0;
    line-height: 1.45;
}

.hwys-form-section fieldset {
    margin-top: 0.5rem;
    border-color: #e2e8f0;
}

.hwys-block-group {
    margin-top: 1rem;
    padding-top: 0.85rem;
    border-top: 1px dashed #e2e8f0;
}

.hwys-block-group:first-of-type {
    margin-top: 0.5rem;
    padding-top: 0;
    border-top: none;
}

.hwys-block-label {
    margin: 0 0 0.35rem;
    font-weight: 700;
    font-size: 0.88rem;
    color: #475569;
}

.hwys-subheading {
    font-size: 0.92rem;
    margin: 1.15rem 0 0.35rem;
    font-weight: 700;
}

.hwys-contact-req {
    display: flex;
    align-items: flex-end;
    padding-bottom: 0.35rem;
}

.hwys-contact-req label {
    margin-top: 0;
}

/* お問い合わせ — 項目ラベル横に必須・動的追加 */
.hwys-contact-items {
    margin-top: 0.75rem;
}

.hwys-contact-items__lead {
    margin: 0 0 0.65rem;
    font-size: 0.86rem;
    line-height: 1.5;
}

.hwys-contact-item {
    margin: 0 0 0.85rem;
}

.hwys-contact-item__head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.45rem 0.75rem;
    margin-bottom: 0.3rem;
}

.hwys-contact-item__head > label:first-of-type {
    margin: 0;
    font-weight: 600;
}

.hwys-contact-req-inline {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    margin: 0;
    font-size: 0.86rem;
    font-weight: 500;
    color: #64748b;
    cursor: pointer;
}

.hwys-contact-req-inline input {
    margin: 0;
}

.hwys-contact-item input[type="text"] {
    width: 100%;
    box-sizing: border-box;
}

.hwys-contact-item--collapsed {
    display: none;
}

.hwys-contact-dynamic {
    margin-top: 0.35rem;
    padding-top: 0.15rem;
}

.hwys-contact-items__lead {
    margin: 0 0 0.85rem;
    padding: 0.7rem 0.95rem;
    line-height: 1.55;
    border-radius: 8px;
    background: #f1f5f9;
    border-left: 3px solid #5856d6;
}

.hwys-contact-after-inquiry {
    margin-top: 1.15rem;
    padding-top: 1rem;
    border-top: 1px solid #e2e8f0;
}

.hwys-contact-after-inquiry > label {
    font-weight: 600;
}

.hwys-contact-after-inquiry__body {
    min-height: 7rem;
}

.hwys-form-actions {
    position: sticky;
    bottom: 0;
    z-index: 35;
    margin: 0.75rem -1rem 0;
    padding: 0.75rem max(1rem, env(safe-area-inset-right, 0)) calc(0.75rem + env(safe-area-inset-bottom, 0)) max(1rem, env(safe-area-inset-left, 0));
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    border-top: 1px solid var(--hwys-separator);
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.06);
    justify-content: center;
}

@media (min-width: 720px) {
    .hwys-form-nav {
        flex-wrap: wrap;
    }
}


body.hwys-page--edit {
    max-width: 720px;
    margin: 2rem auto;
    padding: 0 1rem 3rem;
}

body.hwys-page--error {
    max-width: 520px;
    margin: 3rem auto;
    padding: 0 1.5rem;
}

h1 {
    font-size: 1.35rem;
    font-weight: 700;
    margin: 0 0 0.35rem;
}

h2 {
    font-size: 1.05rem;
    margin: 2rem 0 0.75rem;
    border-bottom: 1px solid var(--hwys-border);
    padding-bottom: 0.35rem;
}

body.hwys-page--edit h2 {
    font-size: 1rem;
    margin: 1.75rem 0 0.5rem;
    border-bottom: none;
    padding-bottom: 0;
}

a {
    color: var(--hwys-accent);
    text-decoration-skip-ink: auto;
}

@media (hover: hover) {
    a:hover {
        text-decoration: underline;
    }
}

.hwys-nav {
    font-size: 0.9rem;
    margin: 0 0 1rem;
    padding: 0 0 0.75rem;
    border-bottom: 1px solid var(--hwys-border);
}

.hwys-nav a {
    margin-right: 1rem;
    font-weight: 600;
}

.muted {
    color: var(--hwys-muted);
    font-size: 0.88rem;
}

.error {
    background: var(--hwys-danger-bg);
    color: var(--hwys-danger-fg);
    padding: 0.75rem 1rem;
    border-radius: 8px;
}

.err {
    background: var(--hwys-danger-bg);
    color: var(--hwys-danger-fg);
    padding: 0.75rem 1rem;
    border-radius: 8px;
}

.flash {
    background: var(--hwys-success-bg);
    color: var(--hwys-success-fg);
    padding: 0.75rem 1rem;
    border-radius: 8px;
    margin: 0.75rem 0;
}

.ok {
    background: var(--hwys-success-bg);
    color: var(--hwys-success-fg);
    padding: 0.75rem 1rem;
    border-radius: 8px;
    margin: 0.75rem 0;
}

.errbox {
    background: var(--hwys-danger-bg);
    color: var(--hwys-danger-fg);
    padding: 0.6rem 1rem;
    border-radius: 8px;
    margin-top: 0.75rem;
    font-size: 0.9rem;
}

.badge {
    display: inline-block;
    padding: 0.2rem 0.55rem;
    border-radius: 6px;
    font-size: 0.82rem;
}

.badge.ok {
    background: var(--hwys-success-bg);
    color: var(--hwys-ok-badge);
}

.badge.warn {
    background: var(--hwys-warn-bg);
    color: var(--hwys-warn-fg);
}

code {
    font-size: 0.78rem;
    background: var(--hwys-code-bg);
    padding: 0.1rem 0.35rem;
    border-radius: 4px;
    word-break: break-all;
}

table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1rem;
}

th,
td {
    text-align: left;
    border-bottom: 1px solid var(--hwys-border);
    padding: 0.5rem 0.35rem;
    font-size: 0.85rem;
}

body.hwys-page--wide table {
    font-size: 0.85rem;
}

th.n,
td.n {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.filter-form {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    align-items: flex-end;
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    background: var(--hwys-surface);
    border: 1px solid var(--hwys-border);
    border-radius: 8px;
    font-size: 0.9rem;
}

.filter-form label {
    display: inline-flex;
    flex-direction: column;
    gap: 0.2rem;
    font-weight: 600;
    color: #334155;
}

.filter-form select {
    min-width: 12rem;
    padding: 0.35rem;
}

.filter-form input[type="text"],
.filter-form input[type="search"] {
    min-width: 14rem;
    padding: 0.35rem;
}

.filter-form button {
    padding: 0.4rem 0.85rem;
    cursor: pointer;
    border-radius: 6px;
    border: 1px solid #cbd5e1;
    background: #fff;
}

.filter-form button:hover {
    background: var(--hwys-surface);
}

label {
    display: block;
    margin-top: 0.85rem;
    font-weight: 600;
    font-size: 0.9375rem;
    letter-spacing: -0.01em;
}

body.hwys-page--edit label {
    margin-top: 1rem;
    font-size: 0.9rem;
}

.row2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem 1rem;
}

@media (max-width: 640px) {
    .row2 {
        grid-template-columns: 1fr;
    }
}

input[type="text"],
input[type="url"],
input[type="email"],
input[type="tel"],
input[type="time"],
input[type="datetime-local"],
textarea,
select {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    min-height: var(--hwys-touch-min);
    padding: 0.65rem 0.85rem;
    margin-top: 0.35rem;
    font-size: 1rem;
    border: 1px solid var(--hwys-border);
    border-radius: var(--hwys-radius);
    background: var(--hwys-bg-elevated);
    transition: border-color var(--hwys-transition), box-shadow var(--hwys-transition);
}

textarea {
    min-height: 5.5rem;
    line-height: 1.5;
}

fieldset {
    border: 1px solid var(--hwys-separator);
    border-radius: var(--hwys-radius);
    padding: 1rem 1.15rem 1.15rem;
    margin-top: 1rem;
    background: rgba(255, 255, 255, 0.5);
}

legend {
    font-weight: 700;
    padding: 0 0.35rem;
}

.actions {
    margin-top: 1.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
}

.img-note {
    font-size: 0.82rem;
    color: var(--hwys-muted);
    margin-top: 0.25rem;
}

ul.compact {
    margin: 0.35rem 0 0;
    padding-left: 1.15rem;
    font-size: 0.85rem;
}

.imglines {
    min-height: 5rem;
    font-family: ui-monospace, monospace;
    font-size: 0.82rem;
}

.mindta {
    min-height: 3.75rem;
}

.mindta::placeholder,
.hwys-hearing-field::placeholder {
    color: #a8b4c0;
    opacity: 1;
    font-weight: 400;
    line-height: 1.55;
}

body.hwys-page--form input::placeholder,
body.hwys-page--form textarea::placeholder,
body.hwys-page--form .hwys-hearing-field::placeholder,
body.hwys-page--form .mindta::placeholder {
    color: #a8b4c0;
}

.story {
    min-height: 8rem;
    font-family: ui-monospace, monospace;
    font-size: 0.85rem;
}

.statbox {
    background: var(--hwys-surface);
    border: 1px solid var(--hwys-border);
    border-radius: 8px;
    padding: 0.75rem 1rem;
    font-size: 0.9rem;
    margin-top: 0.75rem;
}

.statbox dl {
    margin: 0;
    display: grid;
    grid-template-columns: 11rem 1fr;
    gap: 0.35rem 0.75rem;
}

.statbox dt {
    margin: 0;
    color: var(--hwys-muted);
}

.statbox dd {
    margin: 0;
}

.stat-good {
    color: var(--hwys-ok-badge);
    font-weight: 600;
}

.stat-warn {
    color: var(--hwys-warn-fg);
}

.audit-table {
    font-size: 0.82rem;
}

.audit-table th,
.audit-table td {
    vertical-align: top;
}

.detail {
    max-width: 420px;
    white-space: pre-wrap;
    word-break: break-word;
    font-size: 0.78rem;
    line-height: 1.35;
}

.hp-trap {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

body.hwys-page--edit h1 {
    font-size: 1.2rem;
}

.actions button:not(.hwys-btn):not(.hwys-hearing-section-actions__save):not(.hwys-hearing-section-actions__done):not(.hwys-hearing-section-actions__edit),
button[type="submit"]:not(.hwys-btn):not(.hwys-hearing-section-actions__save):not(.hwys-hearing-section-actions__done):not(.hwys-hearing-section-actions__edit) {
    min-height: var(--hwys-touch-min);
    padding: 0.65rem 1.25rem;
    border-radius: var(--hwys-radius);
    border: 1px solid var(--hwys-border);
    background: var(--hwys-bg-elevated);
    cursor: pointer;
    font-size: 1rem;
    font-weight: 600;
    box-shadow: var(--hwys-shadow-sm);
    transition: background var(--hwys-transition), box-shadow var(--hwys-transition), transform var(--hwys-transition);
}

@media (hover: hover) {
    .actions button:not(.hwys-btn):not(.hwys-hearing-section-actions__save):not(.hwys-hearing-section-actions__done):not(.hwys-hearing-section-actions__edit):hover,
    button[type="submit"]:not(.hwys-btn):not(.hwys-hearing-section-actions__save):not(.hwys-hearing-section-actions__done):not(.hwys-hearing-section-actions__edit):hover {
        background: var(--hwys-surface);
        box-shadow: var(--hwys-glow-hover);
    }
}

.actions button[data-hwys-submit-action="save"],
.actions button[name="action"][value="save"] {
    background: var(--hwys-gradient-brand);
    color: #fff;
    border: none;
    font-weight: 700;
}

@media (hover: hover) {
    .actions button[data-hwys-submit-action="save"]:hover,
    .actions button[name="action"][value="save"]:hover {
        filter: brightness(1.04);
        box-shadow: var(--hwys-glow-hover);
    }
}

.hwys-pager {
    margin-top: 0.75rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

.hwys-dash-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr));
    gap: 0.85rem;
    margin: 0.5rem 0 1.5rem;
}

.hwys-dash-card {
    border: 1px solid var(--hwys-border);
    border-radius: 8px;
    padding: 0.75rem 0.95rem;
    background: var(--hwys-surface);
}

.hwys-dash-card__label {
    font-size: 0.78rem;
    line-height: 1.35;
}

.hwys-dash-card__metric {
    font-size: 1.65rem;
    font-weight: 700;
    margin-top: 0.35rem;
    letter-spacing: -0.02em;
}

.hwys-dash-card__hint {
    margin-top: 0.35rem;
    font-size: 0.82rem;
}

.hwys-portal-section {
    margin-top: 1.5rem;
    padding-top: 0.35rem;
}

.hwys-portal-section:first-of-type {
    margin-top: 0.85rem;
}

.hwys-portal-dl {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.35rem 1rem;
    margin: 0.75rem 0 0;
    font-size: 0.9rem;
}

.hwys-portal-dl dt {
    font-weight: 600;
}

.hwys-portal-dl dd {
    margin: 0;
}

.hwys-portal-actions {
    margin: 0.5rem 0 0;
    padding-left: 1.2rem;
    line-height: 1.6;
}

.hwys-cursor-export-hint {
    margin: 0.75rem 0 1.25rem;
    padding: 0.65rem 0.85rem;
    background: var(--hwys-surface);
    border: 1px solid var(--hwys-border);
    border-radius: 8px;
    font-size: 0.85rem;
    line-height: 1.5;
}

.hwys-cursor-export-hint p {
    margin: 0.25rem 0 0.75rem;
}

body.hwys-page--form .hwys-portal-section h2 {
    margin-top: 0;
}

.hwys-thought-mind {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.35rem 1rem;
    margin: 0.5rem 0 1rem;
    font-size: 0.88rem;
}

.hwys-thought-mind dt {
    font-weight: 600;
}

.hwys-thought-mind dd {
    margin: 0;
}

input::placeholder,
textarea::placeholder {
    color: #94a3b8;
    opacity: 1;
}

body.hwys-page input::placeholder,
body.hwys-page textarea::placeholder {
    font-weight: 400;
}

/* --- 顧客ポータル --- */
body.hwys-page--portal {
    margin: 0;
    padding: 0;
    max-width: none;
    font-size: 1.0625rem;
    line-height: 1.6;
}

body.hwys-page--portal main#hwys-main {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
}

.hwys-portal-shell {
    width: 100%;
    max-width: 44rem;
    margin-left: auto;
    margin-right: auto;
    padding: clamp(1.25rem, 4vw, 2.5rem) clamp(1rem, 3vw, 1.5rem) 3rem;
    box-sizing: border-box;
}

.hwys-portal-hero {
    margin-bottom: 0.5rem;
    padding: 1.5rem 1.5rem 1.35rem;
    border: 1px solid var(--hwys-separator);
    border-radius: var(--hwys-radius-xl);
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    box-shadow: var(--hwys-shadow-lg);
    text-align: center;
}

.hwys-portal-hero__eyebrow {
    margin: 0;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: var(--hwys-gradient-warm);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.hwys-portal-hero h1 {
    margin: 0.5rem 0 0.65rem;
    font-size: clamp(1.5rem, 5vw, 2.1rem);
    letter-spacing: -0.03em;
    line-height: 1.25;
}

.hwys-portal-hero__status {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.55;
    max-width: 36rem;
    margin-left: auto;
    margin-right: auto;
}

.hwys-portal-hero__status strong {
    color: #5856d6;
}

.hwys-portal-flash {
    display: inline-block;
    margin-top: 0.75rem;
    font-size: 0.9375rem;
}

/* --- ポータル：色分けパネル --- */
.hwys-portal-panel {
    margin-top: 1.35rem;
    padding: 1.35rem 1.4rem 1.4rem;
    border-radius: var(--hwys-radius-xl);
    border: 1px solid var(--hwys-separator);
    box-shadow: var(--hwys-shadow-md);
    background: var(--hwys-bg-elevated);
}

.hwys-portal-panel__head {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.35rem;
}

.hwys-portal-panel__head h2 {
    margin: 0;
    font-family: var(--hwys-font-display);
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    border-bottom: none;
    padding-bottom: 0;
}

.hwys-portal-panel__lead {
    margin: 0 0 1rem;
    font-size: 0.9375rem;
    color: var(--hwys-muted);
    line-height: 1.5;
}

.hwys-portal-panel__badge {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: var(--hwys-radius-sm);
    font-family: var(--hwys-font-display);
    font-size: 1rem;
    font-weight: 700;
    color: #fff;
}

.hwys-portal-panel__badge--flow {
    background: linear-gradient(135deg, #5856d6, #007aff);
}

.hwys-portal-panel__badge--menu {
    background: linear-gradient(135deg, #34c759, #30d158);
}

.hwys-portal-panel__badge--thought {
    background: linear-gradient(135deg, #af52de, #ff2d55);
    font-size: 0.85rem;
}

.hwys-portal-panel--flow {
    border-top: 4px solid #5856d6;
    background: linear-gradient(180deg, #f5f3ff 0%, #fff 14%);
}

.hwys-portal-panel--menu {
    border-top: 4px solid #34c759;
    background: linear-gradient(180deg, #ecfdf5 0%, #fff 14%);
}

.hwys-portal-panel--thought {
    border-top: 4px solid #af52de;
    background: linear-gradient(180deg, #faf5ff 0%, #fff 14%);
    box-shadow: var(--hwys-shadow-md);
}

.hwys-portal-panel--log {
    border-top: 4px solid #64748b;
    background: linear-gradient(180deg, #f8fafc 0%, #fff 14%);
}

.hwys-portal-panel__badge--log {
    background: linear-gradient(135deg, #64748b, #94a3b8);
    font-size: 0.9rem;
}

body.hwys-page--portal .hwys-portal-panel {
    margin-bottom: 1.25rem;
    scroll-margin-top: 4.5rem;
}

body.hwys-page--portal .hwys-portal-panel__head h2 {
    flex: 1;
    min-width: 0;
    line-height: 1.35;
    white-space: normal;
    word-break: keep-all;
}

body.hwys-page--portal .hwys-portal-panel__content {
    padding-bottom: 0.35rem;
}

body.hwys-page--portal .hwys-portal-panel__empty {
    margin: 0 0 0.5rem;
    line-height: 1.55;
}

body.hwys-page--portal .hwys-portal-thought-pattern {
    margin: 0 0 0.75rem;
    padding: 0.6rem 0.85rem;
    border-radius: 10px;
    background: rgba(175, 82, 222, 0.08);
    border: 1px solid rgba(175, 82, 222, 0.14);
    font-size: 1.02rem;
    line-height: 1.45;
}

body.hwys-page--portal .hwys-portal-thought-body {
    margin: 0;
    line-height: 1.65;
    font-size: 0.98rem;
}

.hwys-thought-gift-preview {
    margin: 0;
}

.hwys-thought-gift-preview__badge {
    margin: 0 0 0.65rem;
    font-size: 0.82rem;
    font-weight: 700;
    color: #5856d6;
}

.hwys-thought-gift-preview__type {
    margin: 0 0 1rem;
    text-align: center;
    font-size: 1.08rem;
    font-weight: 800;
}

.hwys-thought-gift-preview__label {
    margin: 0.85rem 0 0.35rem;
    font-size: 0.78rem;
}

.hwys-thought-gift-preview__excerpt {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    overflow: hidden;
}

.hwys-thought-gift-preview__color {
    padding: 0.55rem 0.75rem;
    border-radius: 10px;
    background: rgba(88, 86, 214, 0.06);
    border: 1px solid rgba(88, 86, 214, 0.12);
    font-size: 0.92rem;
}

.hwys-thought-gift-preview__cta {
    margin: 1.15rem 0 0.45rem;
    text-align: center;
}

.hwys-thought-gift-preview__hint {
    margin: 0;
    font-size: 0.82rem;
    text-align: center;
    line-height: 1.55;
}

body.hwys-page--portal .hwys-portal-log-list--timeline {
    list-style: none;
    margin: 0;
    padding: 0;
}

body.hwys-page--portal .hwys-portal-log-list__item {
    display: grid;
    grid-template-columns: minmax(8.5rem, auto) 1fr;
    gap: 0.35rem 0.85rem;
    align-items: baseline;
    padding: 0.6rem 0;
    border-bottom: 1px solid rgba(60, 60, 67, 0.1);
    font-size: 0.9rem;
    line-height: 1.5;
}

body.hwys-page--portal .hwys-portal-log-list__item:last-child {
    border-bottom: none;
}

body.hwys-page--portal .hwys-portal-log-list__time {
    font-size: 0.76rem;
    color: #636366;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

body.hwys-page--portal .hwys-portal-log-list__text {
    min-width: 0;
    word-break: break-word;
}

body.hwys-page--portal .hwys-portal-log-list__link {
    color: var(--hwys-accent, #5856d6);
    font-weight: 600;
    text-decoration: none;
}

body.hwys-page--portal .hwys-portal-log-list__link:hover {
    text-decoration: underline;
}

.hwys-portal-log__lead {
    margin: 0 0 0.85rem;
    font-size: 0.88rem;
    line-height: 1.55;
}

.hwys-portal-log__alert {
    margin: 0 0 0.85rem;
    padding: 0.65rem 0.85rem;
    border-radius: 10px;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    font-size: 0.88rem;
}

.hwys-portal-log__alert a {
    color: #c2410c;
    font-weight: 700;
    text-decoration: none;
}

.hwys-portal-log__shortcuts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(60, 60, 67, 0.1);
}

.hwys-portal-log__shortcut {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.75rem 0.85rem;
    border-radius: 12px;
    border: 1px solid #e2e8f0;
    background: #fff;
    text-decoration: none;
    color: #334155;
    font-size: 0.88rem;
    font-weight: 700;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.hwys-portal-log__shortcut:hover {
    border-color: rgba(88, 86, 214, 0.35);
    box-shadow: 0 2px 8px rgba(88, 86, 214, 0.08);
}

.hwys-portal-log__shortcut-glyph {
    font-size: 1.1rem;
    line-height: 1;
}

body.hwys-page--portal .hwys-portal-subhead {
    margin: 1rem 0 0.35rem;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #64748b;
}

body.hwys-page--portal .hwys-portal-subhead:first-child {
    margin-top: 0;
}

@media (max-width: 420px) {
    body.hwys-page--portal .hwys-portal-log-list__item {
        grid-template-columns: 1fr;
        gap: 0.15rem;
    }
}

/* --- 工程ステップ（ポータル：横読みタイムライン） --- */
body.hwys-page--portal .hwys-wf-steps--portal,
body.hwys-page--portal .hwys-portal-drawer .hwys-wf-steps {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

body.hwys-page--portal .hwys-wf-steps--portal .hwys-wf-steps__item,
body.hwys-page--portal .hwys-portal-drawer .hwys-wf-steps__item {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 0.85rem;
    min-width: 0;
    width: 100%;
    flex: none;
    padding: 0.9rem 1rem;
    border-radius: var(--hwys-radius);
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid var(--hwys-separator);
    text-align: left;
}

body.hwys-page--portal .hwys-wf-steps__marker {
    flex-shrink: 0;
    width: 0.625rem;
    height: 0.625rem;
    margin-top: 0.42rem;
    border-radius: 999px;
    background: #c7c7cc;
    box-shadow: 0 0 0 3px rgba(199, 199, 204, 0.35);
}

body.hwys-page--portal .hwys-wf-steps__content {
    flex: 1;
    min-width: 0;
}

body.hwys-page--portal .hwys-wf-steps__item--current {
    background: rgba(88, 86, 214, 0.1);
    border-color: rgba(88, 86, 214, 0.35);
    box-shadow: var(--hwys-glow-focus);
}

body.hwys-page--portal .hwys-wf-steps__item--current .hwys-wf-steps__marker {
    background: #5856d6;
    box-shadow: 0 0 0 3px rgba(88, 86, 214, 0.28);
    animation: hwys-wf-marker-pulse 2.2s ease-in-out infinite;
}

body.hwys-page--portal .hwys-wf-steps__item--done {
    background: rgba(52, 199, 89, 0.08);
    border-color: rgba(52, 199, 89, 0.25);
}

body.hwys-page--portal .hwys-wf-steps__item--done .hwys-wf-steps__marker {
    background: #34c759;
    box-shadow: 0 0 0 3px rgba(52, 199, 89, 0.22);
}

body.hwys-page--portal .hwys-wf-steps__label {
    display: block;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.4;
    white-space: normal;
    word-break: keep-all;
    overflow-wrap: break-word;
}

body.hwys-page--portal .hwys-wf-steps__hint {
    display: block;
    font-size: 0.875rem;
    line-height: 1.5;
    margin-top: 0.15rem;
    color: var(--hwys-muted);
}

body.hwys-page--portal .hwys-wf-steps__item--current .hwys-wf-steps__label {
    color: #5856d6;
}

@keyframes hwys-wf-marker-pulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.12); opacity: 0.82; }
}

@media (min-width: 720px) {
    body.hwys-page--portal .hwys-wf-steps--portal,
    body.hwys-page--portal .hwys-portal-drawer .hwys-wf-steps {
        flex-direction: column;
        flex-wrap: nowrap;
    }

    body.hwys-page--portal .hwys-wf-steps--portal .hwys-wf-steps__item,
    body.hwys-page--portal .hwys-portal-drawer .hwys-wf-steps__item {
        flex: none;
        min-width: unset;
        width: 100%;
    }
}

.hwys-portal-dl {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.5rem 1.25rem;
    margin: 1.15rem 0 0;
    padding: 1rem 1.1rem;
    font-size: 0.9375rem;
    border-radius: var(--hwys-radius);
    background: rgba(255, 255, 255, 0.75);
    border: 1px solid var(--hwys-separator);
}

.hwys-portal-dl--meta {
    background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
}

.hwys-portal-dl dt {
    font-weight: 700;
    color: var(--hwys-text);
}

.hwys-portal-dl dd {
    margin: 0;
    color: var(--hwys-muted);
}

.hwys-portal-thought-pattern {
    margin-top: 0.35rem;
    font-size: 1.05rem;
}

.hwys-portal-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.85rem;
    margin-top: 0.25rem;
}

@media (min-width: 520px) {
    .hwys-portal-cards {
        grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
    }
}

.hwys-portal-card {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 1.15rem 1.2rem;
    border: 1px solid var(--hwys-separator);
    border-radius: var(--hwys-radius-lg);
    background: #fff;
    text-decoration: none;
    color: inherit;
    min-height: 6rem;
    box-shadow: var(--hwys-shadow-sm);
    transition: box-shadow var(--hwys-transition), transform var(--hwys-transition), border-color var(--hwys-transition);
}

@media (hover: hover) {
    a.hwys-portal-card:hover {
        border-color: var(--hwys-accent);
        box-shadow: var(--hwys-glow-hover);
        transform: translateY(-2px);
        text-decoration: none;
    }
}

.hwys-portal-card--primary {
    border-color: rgba(88, 86, 214, 0.35);
    background: linear-gradient(165deg, #f5f3ff 0%, #fff 45%);
}

.hwys-portal-card--accent {
    border-color: rgba(52, 199, 89, 0.35);
    background: linear-gradient(165deg, #ecfdf5 0%, #fff 45%);
}

.hwys-portal-card--disabled {
    opacity: 0.72;
    background: var(--hwys-surface);
    cursor: not-allowed;
}

.hwys-portal-card__title {
    font-family: var(--hwys-font-display);
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.hwys-portal-card__desc {
    font-size: 0.9375rem;
    line-height: 1.45;
    color: var(--hwys-muted);
}

.hwys-portal-card--disabled .hwys-portal-card__desc {
    color: var(--hwys-muted);
}

.hwys-portal-foot {
    margin-top: 1.75rem;
    font-size: 0.875rem;
    line-height: 1.55;
    text-align: center;
    max-width: 36rem;
    margin-left: auto;
    margin-right: auto;
}

@media (min-width: 720px) {
    .hwys-wf-steps {
        flex-wrap: wrap;
        overflow-x: visible;
    }

    .hwys-wf-steps__item {
        flex: 1 1 0;
        min-width: 0;
    }
}

/* ヒアリング各セクション — 色でリズム（迷子防止 + ワクワク） */
#sec-basic { --hwys-sec-accent: #3b82f6; }
#sec-hours { --hwys-sec-accent: #06b6d4; }

/* 営業時間 — 章カード内フル幅テーブル */
.hwys-chapter__fields .hwys-hours-fieldset {
    overflow: visible;
}

.hwys-hours-fieldset {
    border: none;
    padding: 0;
    margin: 0;
}

.hwys-hours-grid-wrap {
    width: 100%;
    box-sizing: border-box;
    padding: 0.65rem 1rem 0.25rem;
}

.hwys-hours-grid {
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 100%;
    margin: 0 auto;
}

.hwys-hours-grid__head,
.hwys-hours-grid__row {
    display: grid;
    grid-template-columns: minmax(6.25rem, 0.95fr) minmax(0, 1.15fr) minmax(0, 1.15fr) minmax(0, 2.1fr);
    gap: 0.55rem 0.75rem;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
}

.hwys-hours-grid__head {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #48484a;
    padding: 0.55rem 0.65rem 0.65rem;
    margin-bottom: 0.15rem;
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(6, 182, 212, 0.12) 0%, rgba(6, 182, 212, 0.04) 100%);
    border: 1px solid rgba(6, 182, 212, 0.18);
}

.hwys-hours-grid__head .hwys-hours-grid__col-open,
.hwys-hours-grid__head .hwys-hours-grid__col-close,
.hwys-hours-grid__head .hwys-hours-grid__col-note {
    text-align: center;
}

.hwys-hours-grid__head .hwys-hours-grid__col-day {
    text-align: left;
}

.hwys-hours-grid__row {
    padding: 0.55rem 0.65rem;
    border-radius: 12px;
    transition: background 0.15s ease;
}

.hwys-hours-grid__row:nth-child(even) {
    background: rgba(255, 255, 255, 0.55);
}

.hwys-hours-grid__row:hover {
    background: rgba(6, 182, 212, 0.06);
}

.hwys-hours-grid__col-day {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    min-width: 0;
}

.hwys-hours-grid__weekday {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    min-height: 2rem;
    padding: 0 0.5rem;
    font-weight: 800;
    font-size: 1.05rem;
    font-family: var(--hwys-font-display, inherit);
    color: #0e7490;
    background: rgba(6, 182, 212, 0.12);
    border-radius: 10px;
    line-height: 1;
}

.hwys-hours-closed {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0;
    padding: 0.2rem 0.45rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: #636366;
    background: rgba(60, 60, 67, 0.06);
    border-radius: 999px;
    cursor: pointer;
    white-space: nowrap;
}

.hwys-hours-closed:has(input:checked) {
    color: #b45309;
    background: rgba(245, 158, 11, 0.14);
}

.hwys-hours-closed input {
    width: 0.95rem;
    height: 0.95rem;
    margin: 0;
    flex-shrink: 0;
}

.hwys-hours-grid select,
.hwys-hours-grid .hwys-hours-note {
    width: 100%;
    min-width: 0;
    min-height: var(--hwys-touch-min, 44px);
    font-size: 16px;
    border-radius: 12px;
    border: 1px solid rgba(60, 60, 67, 0.18);
    padding: 0.55rem 2rem 0.55rem 0.75rem;
    box-sizing: border-box;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.hwys-hours-grid select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23636666' d='M1.4 0 6 4.6 10.6 0 12 1.4l-6 6-6-6z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    text-align: center;
    text-align-last: center;
    cursor: pointer;
}

.hwys-hours-grid select:focus,
.hwys-hours-grid .hwys-hours-note:focus {
    outline: none;
    border-color: rgba(6, 182, 212, 0.55);
    box-shadow: 0 0 0 3px rgba(6, 182, 212, 0.18);
}

.hwys-hours-grid select:disabled {
    opacity: 0.5;
    background-color: #f2f2f7;
    cursor: not-allowed;
}

.hwys-hours-grid .hwys-hours-note {
    padding-right: 0.75rem;
    text-align: left;
}

.hwys-chapter__fields .hwys-hours-global-note-label {
    display: block;
    margin: 0;
    padding: 0.85rem 1rem 0.35rem;
    font-size: 0.8125rem;
    font-weight: 700;
    color: #3a3a3c;
}

.hwys-chapter__fields .hwys-hours-global-note {
    display: block;
    width: calc(100% - 2rem);
    margin: 0 1rem 0.85rem;
    min-height: 5.5rem;
    padding: 0.7rem 0.85rem;
    font-size: 1rem;
    border: 1px solid rgba(60, 60, 67, 0.18);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    line-height: 1.5;
    resize: vertical;
    box-sizing: border-box;
}

.hwys-hours-footer-home {
    margin: 0 1rem 0.85rem;
    padding: 0.85rem 0.95rem;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #f8fafc;
}

.hwys-hours-footer-home__title {
    margin: 0 0 0.55rem;
    font-weight: 800;
    font-size: 0.95rem;
    color: #0f172a;
}

.hwys-hours-footer-preview {
    margin: 0 0 0.75rem;
    padding: 0.65rem 0.85rem;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #fff;
}

.hwys-hours-footer-preview__label {
    margin: 0 0 0.25rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: #64748b;
}

.hwys-hours-footer-preview__note {
    margin: 0 0 0.45rem;
    font-size: 0.78rem;
    line-height: 1.45;
}

.hwys-hours-footer-preview__body {
    margin: 0;
    font-family: inherit;
    font-size: 0.88rem;
    line-height: 1.55;
    white-space: pre-wrap;
    color: #334155;
}

.hwys-hours-footer-check {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    margin: 0;
    font-weight: 600;
    font-size: 0.92rem;
}

.hwys-hours-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (max-width: 720px) {
    .hwys-hours-grid-wrap {
        padding-left: 0.65rem;
        padding-right: 0.65rem;
    }

    .hwys-hours-grid__head {
        display: none;
    }

    .hwys-hours-grid__row {
        grid-template-columns: 1fr 1fr;
        gap: 0.5rem;
        padding: 0.75rem 0.5rem;
    }

    .hwys-hours-grid__col-day {
        grid-column: 1 / -1;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        width: 100%;
    }

    .hwys-hours-grid__col-open::before,
    .hwys-hours-grid__col-close::before,
    .hwys-hours-grid__col-note::before {
        display: block;
        font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: 0.04em;
        color: #636366;
        margin-bottom: 0.25rem;
    }

    .hwys-hours-grid__col-open::before { content: "開業"; }
    .hwys-hours-grid__col-close::before { content: "閉業"; }

    .hwys-hours-grid__col-note {
        grid-column: 1 / -1;
    }

    .hwys-hours-grid__col-note::before { content: "備考"; }
}

#sec-contact { --hwys-sec-accent: #8b5cf6; }
#sec-mind-resolution { --hwys-sec-accent: #7c3aed; }
#sec-mind-soul { --hwys-sec-accent: #ec4899; }
#sec-pages { --hwys-sec-accent: #f97316; }
#sec-domain { --hwys-sec-accent: #14b8a6; }
#sec-design { --hwys-sec-accent: #eab308; }
#sec-images { --hwys-sec-accent: #22c55e; }
#sec-payment { --hwys-sec-accent: #94a3b8; }

.hwys-section-h {
    color: var(--hwys-sec-accent, var(--hwys-text));
}

.hwys-customer-head__title {
    background: var(--hwys-gradient-joy);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

/* --- ヒアリング入力進捗 --- */
.hwys-form-header-tools {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin: 0 0 1.25rem;
}

.hwys-form-progress-panel {
    margin: 0;
    padding: 1.15rem 1.25rem;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid var(--hwys-separator);
    border-radius: var(--hwys-radius-xl);
    box-shadow: var(--hwys-shadow-md);
}

.hwys-form-progress-panel .hwys-progress-overall {
    margin-bottom: 0;
}

.hwys-form-progress-panel .hwys-section-dashboard {
    margin-top: 1rem;
}

.hwys-form-meta-row {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.hwys-form-meta-row .hwys-form-save-notice {
    margin: 0;
}

.hwys-form-meta-row .hwys-save-status {
    margin: 0;
}

@media (min-width: 640px) {
    .hwys-form-meta-row {
        flex-direction: row;
        align-items: stretch;
        gap: 0.75rem;
    }

    .hwys-form-meta-row .hwys-form-save-notice,
    .hwys-form-meta-row .hwys-save-status {
        flex: 1 1 0;
        min-width: 0;
    }
}

.hwys-form-sticky-compact {
    position: sticky;
    top: 0;
    z-index: 46;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.35rem 0.75rem;
    margin: 0;
    padding: 0.55rem 0.9rem;
    min-height: var(--hwys-form-sticky-h);
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: saturate(180%) blur(16px);
    -webkit-backdrop-filter: saturate(180%) blur(16px);
    border: 1px solid var(--hwys-separator);
    border-radius: var(--hwys-radius);
    box-shadow: var(--hwys-shadow-sm);
    font-size: 0.875rem;
    line-height: 1.4;
}

.hwys-form-sticky-compact__pct strong {
    font-family: var(--hwys-font-display);
    font-size: 1.1rem;
    color: #5856d6;
}

.hwys-form-sticky-compact__count {
    color: var(--hwys-muted);
    font-weight: 600;
}

.hwys-form-sticky-compact__next {
    font-weight: 700;
}

.hwys-form-sticky-compact__top {
    font-weight: 600;
    white-space: nowrap;
}

body.hwys-page--form .hwys-chapter,
body.hwys-page--form section[id^="sec-"] {
    scroll-margin-top: calc(var(--hwys-form-sticky-h) + 1.25rem);
}

body.hwys-page--form {
    scroll-padding-top: calc(var(--hwys-form-sticky-h) + 1.25rem);
}

.hwys-progress-overall {
    padding: 0;
    margin: 0;
}

.hwys-progress-overall__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: 0.35rem 0.85rem;
    margin-bottom: 0.65rem;
    text-align: center;
}

.hwys-progress-overall__title {
    font-family: var(--hwys-font-display);
    font-weight: 700;
    font-size: 1rem;
    width: 100%;
}

.hwys-progress-overall__pct {
    font-size: 1rem;
    color: #5856d6;
}

.hwys-progress-overall__pct strong {
    font-family: var(--hwys-font-display);
    font-size: 2rem;
    letter-spacing: -0.03em;
    background: var(--hwys-gradient-joy);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.hwys-progress-overall__count {
    font-size: 0.875rem;
    width: 100%;
}

.hwys-progress-overall__hint {
    margin: 1.15rem 0 0;
    font-size: 0.8125rem;
    text-align: center;
}

/* --- ドメイン希望（色分けガイド） --- */
.hwys-domain-guide {
    margin: 0 0 1rem;
    padding: 1rem 1.1rem;
    border-radius: var(--hwys-radius-lg);
    background: linear-gradient(165deg, #f0fdfa 0%, #f8fafc 55%, #fff 100%);
    border: 1px solid rgba(20, 184, 166, 0.2);
}

.hwys-domain-guide__lead {
    margin: 0 0 0.75rem;
    font-size: 0.875rem;
    line-height: 1.55;
    text-wrap: pretty;
}

.hwys-domain-example {
    margin: 0 0 0.85rem;
    padding: 0.85rem 0.75rem;
    text-align: center;
    font-size: clamp(0.95rem, 3.5vw, 1.15rem);
    font-family: ui-monospace, "Cascadia Code", "SF Mono", Menlo, Consolas, monospace;
    letter-spacing: 0.01em;
    word-break: break-all;
    border-radius: var(--hwys-radius);
    background: #fff;
    box-shadow: inset 0 0 0 1px rgba(60, 60, 67, 0.1);
}

.hwys-domain-at {
    color: var(--hwys-muted);
    font-weight: 600;
}

.hwys-domain-part {
    font-weight: 700;
    padding: 0.05em 0.1em;
    border-radius: 4px;
}

.hwys-domain-part--user {
    color: #5856d6;
    background: rgba(88, 86, 214, 0.1);
}

.hwys-domain-part--second {
    color: #007aff;
    background: rgba(0, 122, 255, 0.1);
}

.hwys-domain-part--tld {
    color: #ff2d55;
    background: rgba(255, 45, 85, 0.08);
}

.hwys-domain-legend {
    list-style: none;
    margin: 0 0 0.75rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.hwys-domain-legend li {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.5rem;
    font-size: 0.8125rem;
    line-height: 1.5;
}

.hwys-domain-legend__swatch {
    flex-shrink: 0;
    width: 0.65rem;
    height: 0.65rem;
    border-radius: 999px;
    margin-top: 0.35rem;
}

.hwys-domain-legend__swatch--user { background: #5856d6; }
.hwys-domain-legend__swatch--second { background: #007aff; }
.hwys-domain-legend__swatch--tld { background: #ff2d55; }

.hwys-domain-legend__name {
    font-weight: 700;
    color: var(--hwys-text);
}

.hwys-domain-tld-note {
    margin: 0;
    font-size: 0.78rem;
    line-height: 1.55;
}

.hwys-domain-tld-list {
    display: inline;
    font-weight: 600;
    color: #475569;
}

.hwys-domain-label-hint {
    font-weight: 500;
    font-size: 0.78rem;
    color: var(--hwys-muted);
}

.hwys-domain-example--labeled {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: center;
    gap: 0.15rem 0.35rem;
}

.hwys-domain-example__part {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 0.2rem;
}

.hwys-domain-example__hint {
    font-family: -apple-system, BlinkMacSystemFont, "Noto Sans JP", sans-serif;
    font-size: 0.68rem;
    font-weight: 600;
    color: #64748b;
}

.hwys-domain-formula {
    margin: 0.65rem 0 0;
    font-size: 0.82rem;
    line-height: 1.55;
    text-align: center;
}

.hwys-domain-rank-row__optional {
    font-size: 0.72rem;
    font-weight: 600;
    color: #64748b;
    margin-left: 0.2rem;
}

.hwys-domain-rank-row--secondary,
.hwys-domain-rank-row--tertiary {
    opacity: 0.92;
}

.hwys-domain-part-group {
    margin-bottom: 1.25rem;
    padding: 1rem 1.05rem;
    border-radius: 12px;
    background: #fff;
    border: 1px solid rgba(60, 60, 67, 0.12);
}

.hwys-domain-part-group--user {
    border-left: 4px solid #5856d6;
}

.hwys-domain-part-group--second {
    border-left: 4px solid #007aff;
}

.hwys-domain-part-group--top {
    border-left: 4px solid #ff2d55;
}

.hwys-domain-part-group__title {
    margin: 0 0 0.25rem;
    font-size: 0.95rem;
}

.hwys-domain-part-group__lead {
    margin: 0 0 0.75rem;
    font-size: 0.82rem;
    line-height: 1.5;
}

.hwys-domain-part-group__ranks {
    display: grid;
    gap: 0.55rem;
}

.hwys-domain-rank-row {
    display: grid;
    grid-template-columns: 6.5rem 1fr;
    gap: 0.65rem;
    align-items: center;
    padding: 0.55rem 0.65rem;
    border-radius: 8px;
    background: #f8fafc;
}

.hwys-domain-rank-row--primary {
    background: #f5f3ff;
}

.hwys-domain-rank-row__badge {
    display: block;
    font-weight: 700;
    font-size: 0.84rem;
}

.hwys-domain-rank-row__sub {
    display: block;
    font-size: 0.72rem;
    color: var(--hwys-muted, #64748b);
}

.hwys-domain-rank-row__field select,
.hwys-domain-rank-row__field input {
    width: 100%;
    box-sizing: border-box;
}

.hwys-domain-combo-preview {
    margin-top: 0.5rem;
    padding: 0.85rem 1rem;
    border-radius: 10px;
    background: linear-gradient(165deg, #f0fdfa 0%, #f8fafc 100%);
    border: 1px solid rgba(20, 184, 166, 0.25);
    font-size: 0.84rem;
    line-height: 1.55;
}

.hwys-domain-combo-preview__title {
    margin: 0 0 0.35rem;
    font-weight: 700;
}

.hwys-domain-combo-preview__lead {
    margin: 0 0 0.55rem;
    font-size: 0.78rem;
}

.hwys-domain-combo-preview__label {
    font-weight: 600;
    color: #64748b;
    margin-right: 0.35rem;
}

.hwys-domain-combo-preview__url span:last-child,
.hwys-domain-combo-preview__email span:last-child {
    font-family: ui-monospace, "Cascadia Code", "SF Mono", Menlo, Consolas, monospace;
    word-break: break-all;
}

@media (max-width: 520px) {
    .hwys-domain-rank-row {
        grid-template-columns: 1fr;
        gap: 0.35rem;
    }
}

.hwys-domain-variant + .hwys-domain-variant {
    margin-top: 1rem;
}

.hwys-domain-priority-notice {
    margin: 0 0 0.75rem;
    padding: 0.65rem 0.85rem;
    font-size: 0.84rem;
    line-height: 1.55;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    color: #1e3a5f;
}

.hwys-domain-variant {
    padding: 1rem 1.05rem;
    border-radius: 12px;
    background: #fff;
    border: 1px solid rgba(60, 60, 67, 0.12);
}

.hwys-domain-variant--primary {
    border-color: #5856d6;
    box-shadow: 0 0 0 1px rgba(88, 86, 214, 0.15);
}

.hwys-domain-variant--secondary {
    border-color: rgba(0, 122, 255, 0.35);
}

.hwys-domain-variant--tertiary {
    border-color: rgba(60, 60, 67, 0.1);
    background: #fafafa;
}

.hwys-domain-variant__head {
    margin-bottom: 0.65rem;
}

.hwys-domain-variant__badge {
    display: inline-block;
    font-weight: 700;
    font-size: 0.95rem;
    color: #1c1c1e;
}

.hwys-domain-variant--primary .hwys-domain-variant__badge {
    color: #5856d6;
}

.hwys-domain-variant__sub {
    margin: 0.2rem 0 0;
    font-size: 0.8rem;
}

.hwys-domain-variant__preview {
    margin: 0 0 0.85rem;
    padding: 0.65rem 0.75rem;
    border-radius: 8px;
    background: linear-gradient(165deg, #f0fdfa 0%, #f8fafc 100%);
    border: 1px dashed rgba(20, 184, 166, 0.35);
    font-family: ui-monospace, "Cascadia Code", "SF Mono", Menlo, Consolas, monospace;
    font-size: 0.82rem;
    line-height: 1.5;
    word-break: break-all;
}

.hwys-domain-variant__preview-label {
    display: block;
    font-family: -apple-system, BlinkMacSystemFont, "Noto Sans JP", sans-serif;
    font-size: 0.72rem;
    font-weight: 600;
    color: #64748b;
    margin-bottom: 0.25rem;
}

.hwys-domain-variant__preview-email {
    display: block;
    color: #5856d6;
    font-weight: 600;
}

.hwys-domain-variant__preview-url {
    display: block;
    color: #007aff;
    font-size: 0.78rem;
}

.hwys-domain-variant__fields {
    display: grid;
    gap: 0.5rem;
}

.hwys-domain-field {
    margin-top: 0.65rem;
}

.hwys-domain-variant__fields .hwys-domain-field {
    margin-top: 0;
}

.hwys-domain-field:first-of-type {
    margin-top: 0.35rem;
}

.hwys-domain-field label {
    display: block;
    line-height: 1.45;
}

.hwys-chapter__fields .hwys-domain-field select {
    width: calc(100% - 2rem);
    margin: 0 1rem 0.85rem;
    padding: 0.7rem 0.85rem;
    border: 1px solid rgba(60, 60, 67, 0.18);
    border-radius: 12px;
    background: #fff;
    font-size: 1rem;
}


.hwys-form-save-notice {
    margin: 0.85rem 0 0.5rem;
    font-size: 0.8125rem;
    line-height: 1.55;
}

.hwys-form-foot {
    margin-top: 1.5rem;
    margin-bottom: 0;
    font-size: 0.8125rem;
    text-align: center;
}

.hwys-form-foot--pre-submit {
    padding: 0 0.25rem;
}

.hwys-section-dashboard {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
    margin-top: 1.15rem;
}

.hwys-section-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 0.35rem;
    padding: 1rem 0.7rem 0.85rem;
    min-height: 5.5rem;
    text-align: center;
    border: 1px solid var(--hwys-separator);
    border-radius: var(--hwys-radius-lg);
    background: var(--hwys-bg-elevated);
    text-decoration: none;
    color: inherit;
    box-shadow: var(--hwys-shadow-sm);
    transition: box-shadow var(--hwys-transition), transform var(--hwys-transition), border-color var(--hwys-transition);
}

@media (hover: hover) {
    .hwys-section-tile:hover {
        border-color: var(--hwys-accent);
        box-shadow: var(--hwys-glow-hover);
        transform: translateY(-2px);
        text-decoration: none;
    }
}

.hwys-section-tile--done {
    border-color: rgba(52, 199, 89, 0.4);
    background: linear-gradient(165deg, #ecfdf5 0%, #fff 55%);
}

.hwys-section-tile--started {
    border-color: rgba(88, 86, 214, 0.35);
    background: linear-gradient(165deg, #f5f3ff 0%, #fff 55%);
}

.hwys-section-tile__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 2rem;
    padding: 0 0.45rem;
    border-radius: 999px;
    background: #e8e8ed;
    color: #48484a;
    font-family: var(--hwys-font-display);
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.02em;
}

.hwys-section-tile__title {
    width: 100%;
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.4;
    padding: 0 0.15rem;
}

.hwys-section-tile__pct {
    margin-top: auto;
    padding-top: 0.15rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--hwys-muted);
}

.hwys-section-tile--done .hwys-section-tile__pct {
    color: #248a3d;
}

.hwys-section-tile--started .hwys-section-tile__pct {
    color: #5856d6;
}

.hwys-progress-bar {
    height: 0.55rem;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.06);
}

.hwys-progress-bar__fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--hwys-gradient-joy);
    transition: width 0.35s ease;
    min-width: 0;
}

.hwys-progress-sections {
    list-style: none;
    margin: 0.55rem 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.hwys-progress-sections__item a {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    text-decoration: none;
    border: 1px solid var(--hwys-border);
    background: #fff;
}

.hwys-progress-sections__item--done a {
    background: #ecfdf5;
    border-color: #6ee7b7;
    color: #047857;
}

.hwys-progress-sections__item--started a {
    background: #eef2ff;
    border-color: #c4b5fd;
    color: #5b21b6;
}

.hwys-progress-sections__item--empty a {
    color: var(--hwys-muted);
}

.hwys-progress-sections__pct {
    font-variant-numeric: tabular-nums;
    opacity: 0.85;
}

.hwys-section-head__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem 0.75rem;
}

.hwys-section-head__row .hwys-section-h {
    margin: 0;
}

.hwys-sec-progress {
    display: inline-block;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    white-space: nowrap;
}

.hwys-sec-progress--empty {
    background: #f1f5f9;
    color: #64748b;
}

.hwys-sec-progress--started {
    background: #eef2ff;
    color: #5b21b6;
    border: 1px solid #c4b5fd;
}

.hwys-sec-progress--done {
    background: #ecfdf5;
    color: #047857;
    border: 1px solid #6ee7b7;
}

body.hwys-page--form h2.hwys-section-h {
    scroll-margin-top: calc(var(--hwys-form-sticky-h) + 1.25rem);
}

/* --- Ops pipeline (顧客1件の制作フロー) --- */
.hwys-ops-pipeline {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0 0 1rem;
}

.hwys-ops-pipeline__label,
.hwys-ops-subpanels__label {
    flex-shrink: 0;
    line-height: 1.2;
}

.hwys-ops-pipeline__item {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.45rem;
    line-height: 1.2;
    min-height: var(--hwys-touch-min);
    padding: 0 0.9rem 0 0.65rem;
    border-radius: 999px;
    font-size: 0.9375rem;
    font-weight: 600;
    text-decoration: none;
    border: 1px solid var(--hwys-separator);
    background: var(--hwys-bg-elevated);
    color: var(--hwys-text);
    box-shadow: var(--hwys-shadow-sm);
    transition: background var(--hwys-transition), border-color var(--hwys-transition), box-shadow var(--hwys-transition), transform var(--hwys-transition);
}

@media (hover: hover) {
    .hwys-ops-pipeline__item:hover {
        background: var(--hwys-accent-soft);
        border-color: var(--hwys-accent);
        color: var(--hwys-accent);
        box-shadow: var(--hwys-glow-hover);
        transform: translateY(-1px);
    }
}

.hwys-ops-pipeline__item.is-active {
    background: var(--hwys-gradient-brand);
    border-color: transparent;
    color: #fff;
    box-shadow: var(--hwys-shadow-md);
}

.hwys-ops-subpanels {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin: 0 0 1.1rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid var(--hwys-separator);
}

.hwys-ops-subpanels__item {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-height: 2.35rem;
    padding: 0 0.85rem 0 0.65rem;
    border-radius: 8px;
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
    border: 1px solid var(--hwys-separator);
    background: var(--hwys-bg);
    color: var(--hwys-text-secondary);
}

.hwys-ops-subpanels__item.is-active {
    background: var(--hwys-accent-soft);
    border-color: var(--hwys-accent);
    color: var(--hwys-accent);
}

.hwys-ops-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    margin: 0 0 0.75rem;
    font-size: 0.875rem;
}

.hwys-ops-breadcrumb__link {
    color: var(--hwys-accent);
    text-decoration: none;
    font-weight: 600;
}

.hwys-ops-breadcrumb__link:hover {
    text-decoration: underline;
}

.hwys-ops-breadcrumb__sep {
    color: var(--hwys-text-secondary);
}

.hwys-ops-breadcrumb__current {
    color: var(--hwys-text);
    font-weight: 700;
}

.hwys-ops-hub-back {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.75rem;
    margin: 0 0 0.85rem;
}

.hwys-ops-hub-back__link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.7rem 0.45rem 0.5rem;
    border: 1px solid rgba(88, 86, 214, 0.22);
    border-radius: var(--hwys-radius);
    background: rgba(255, 255, 255, 0.92);
    color: inherit;
    text-decoration: none;
    font-weight: 700;
    font-size: 0.875rem;
    box-shadow: var(--hwys-shadow-sm);
    transition:
        border-color var(--hwys-transition),
        box-shadow var(--hwys-transition),
        transform var(--hwys-transition);
}

.hwys-ops-hub-back__link:hover {
    border-color: rgba(88, 86, 214, 0.42);
    box-shadow: var(--hwys-shadow-md);
    transform: translateY(-1px);
}

.hwys-ops-hub-back__icon {
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 8px;
}

.hwys-ops-hub-back__icon.hwys-ops-key-icon::after {
    width: 0.92rem;
    height: 0.92rem;
}

.hwys-ops-hub-back__hint {
    font-size: 0.78rem;
    line-height: 1.45;
}

.hwys-ops-category-nav {
    margin: 0 0 0.85rem;
}

.hwys-ops-category-nav__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.65rem;
    margin: 0 0 0.5rem;
}

.hwys-ops-category-nav__category {
    display: inline-block;
    padding: 0.18rem 0.55rem;
    border-radius: 999px;
    background: rgba(88, 86, 214, 0.12);
    color: #4338ca;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.hwys-ops-category-nav__current {
    font-size: 0.88rem;
    font-weight: 700;
    color: #1e293b;
}

.hwys-ops-category-nav__tabs {
    margin: 0;
    padding-top: 0;
    border-top: none;
}

.hwys-ops-hub__nav-hint {
    margin: 0 0 0.85rem;
    font-size: 0.8rem;
    line-height: 1.55;
}

.hwys-flow-next-task {
    margin: 0 0 1rem;
    padding: 0.75rem 1rem;
    border-radius: var(--hwys-radius-md);
    border: 1px solid var(--hwys-separator);
    background: var(--hwys-bg-elevated);
}

.hwys-flow-next-task__label {
    margin: 0 0 0.35rem;
    font-size: 0.8rem;
}

.hwys-flow-next-task__link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 1.05rem;
    font-weight: 700;
    text-decoration: none;
    color: var(--hwys-accent);
}

.hwys-flow-next-task__link--chat,
.hwys-flow-next-task__link--alert {
    color: #c2410c;
}

.hwys-flow-next-task__dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: currentColor;
}

.hwys-index-dashboard-prompt {
    margin: 0 0 1rem;
    padding: 0.7rem 1rem;
    border-radius: var(--hwys-radius-md);
    border: 1px solid rgba(88, 86, 214, 0.25);
    background: rgba(88, 86, 214, 0.06);
    font-size: 0.9rem;
}

body.hwys-page--hub-panel {
    background: var(--hwys-gradient-calm);
    background-attachment: fixed;
}

body.hwys-page--hub-panel .hwys-app-body--edit {
    max-width: 1080px;
}

.hwys-page--hub-panel .hwys-page-head {
    margin-bottom: 0.35rem;
}

.hwys-page--hub-panel .hwys-page-head__title {
    font-family: var(--hwys-font-display);
    letter-spacing: -0.03em;
}

.hwys-page--hub-panel .hwys-ops-breadcrumb {
    margin-bottom: 0.5rem;
}

.hwys-page--hub-panel .hwys-customer-ids {
    margin: 0 0 0.85rem;
    padding: 0.45rem 0.75rem;
    border-radius: var(--hwys-radius);
    border: 1px solid var(--hwys-separator);
    background: rgba(255, 255, 255, 0.55);
    backdrop-filter: saturate(160%) blur(12px);
    -webkit-backdrop-filter: saturate(160%) blur(12px);
}

.hwys-ops-hub {
    position: relative;
    margin: 0 0 1.5rem;
    padding: 1.35rem 1.4rem 1.5rem;
    border: 1px solid rgba(255, 255, 255, 0.65);
    border-radius: var(--hwys-radius-xl);
    background: rgba(255, 255, 255, 0.78);
    backdrop-filter: saturate(180%) blur(22px);
    -webkit-backdrop-filter: saturate(180%) blur(22px);
    box-shadow: var(--hwys-shadow-lg), 0 0 0 1px rgba(88, 86, 214, 0.06);
    overflow: hidden;
}

.hwys-ops-hub::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    background: var(--hwys-gradient-brand);
    opacity: 0.85;
    pointer-events: none;
}

.hwys-ops-hub__alert {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.85rem;
    margin: 0 0 1rem;
    padding: 0.7rem 1rem;
    border-radius: var(--hwys-radius);
    border: 1px solid var(--hwys-separator);
    background: rgba(255, 255, 255, 0.92);
    box-shadow: var(--hwys-shadow-sm);
}

.hwys-ops-hub__alert--alert,
.hwys-ops-hub__alert--chat {
    border-color: rgba(255, 59, 48, 0.28);
    background: linear-gradient(135deg, rgba(255, 59, 48, 0.1) 0%, rgba(255, 255, 255, 0.95) 72%);
    box-shadow: 0 4px 18px rgba(255, 59, 48, 0.1), var(--hwys-shadow-sm);
}

.hwys-ops-hub__alert-lbl {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--hwys-danger-fg);
    background: rgba(255, 59, 48, 0.12);
}

.hwys-ops-hub__alert--alert .hwys-ops-hub__alert-lbl::before,
.hwys-ops-hub__alert--chat .hwys-ops-hub__alert-lbl::before {
    content: "";
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 0 3px rgba(255, 59, 48, 0.2);
    animation: hwys-hub-pulse 2s ease-in-out infinite;
}

@keyframes hwys-hub-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.55; transform: scale(0.92); }
}

.hwys-ops-hub__alert-link {
    font-size: 0.95rem;
    font-weight: 700;
    text-decoration: none;
    color: var(--hwys-danger-fg);
    transition: color var(--hwys-transition);
}

.hwys-ops-hub__alert-link:hover {
    color: #a30012;
    text-decoration: underline;
}

.hwys-ops-hub__lead {
    margin: 0 0 1.1rem;
    font-size: 0.9rem;
    color: var(--hwys-muted);
    letter-spacing: 0.01em;
}

.hwys-ops-hub__groups {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.hwys-ops-hub__group-title {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin: 0 0 0.7rem;
    font-family: var(--hwys-font-display);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--hwys-muted);
}

.hwys-ops-hub__group-title::after {
    content: "";
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, var(--hwys-separator) 0%, transparent 100%);
}

.hwys-ops-hub__group--primary .hwys-ops-hub__group-title {
    color: var(--hwys-primary);
}

.hwys-ops-hub__group--primary .hwys-ops-hub__grid {
    grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr));
    gap: 0.65rem;
}

.hwys-ops-hub__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(12.5rem, 1fr));
    gap: 0.6rem;
}

.hwys-ops-hub__card {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.75rem;
    min-height: var(--hwys-touch-min);
    padding: 0.8rem 0.85rem 0.8rem 0.8rem;
    border: 1px solid rgba(60, 60, 67, 0.1);
    border-radius: var(--hwys-radius);
    background: rgba(255, 255, 255, 0.92);
    text-decoration: none;
    color: inherit;
    box-shadow: var(--hwys-shadow-sm);
    transition:
        transform var(--hwys-transition),
        border-color var(--hwys-transition),
        box-shadow var(--hwys-transition),
        background var(--hwys-transition);
}

.hwys-ops-hub__card:hover {
    transform: translateY(-2px);
    border-color: rgba(0, 122, 255, 0.28);
    background: #fff;
    box-shadow: var(--hwys-shadow-md), 0 0 0 1px rgba(0, 122, 255, 0.08);
}

.hwys-ops-hub__card:focus-visible {
    outline: none;
    box-shadow: var(--hwys-glow-focus);
}

.hwys-ops-hub__card--priority {
    border-color: rgba(88, 86, 214, 0.22);
    background: linear-gradient(145deg, rgba(88, 86, 214, 0.09) 0%, rgba(255, 255, 255, 0.96) 58%);
}

.hwys-ops-hub__card--priority:hover {
    border-color: rgba(88, 86, 214, 0.4);
    box-shadow: var(--hwys-shadow-glow), var(--hwys-shadow-md);
}

.hwys-ops-hub__card-icon {
    flex-shrink: 0;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 11px;
    background: var(--hwys-gradient-brand);
    box-shadow: 0 4px 12px rgba(88, 86, 214, 0.28);
    position: relative;
}

.hwys-ops-hub__card-icon::after {
    content: "";
    position: absolute;
    inset: 0;
    margin: auto;
    width: 1.15rem;
    height: 1.15rem;
    background: #fff;
    opacity: 0.95;
    -webkit-mask: center / contain no-repeat;
    mask: center / contain no-repeat;
}

.hwys-ops-hub__card--flow .hwys-ops-hub__card-icon { background: linear-gradient(135deg, #5856d6, #007aff); }
.hwys-ops-hub__card--chat .hwys-ops-hub__card-icon { background: linear-gradient(135deg, #007aff, #5ac8fa); }
.hwys-ops-hub__card--data .hwys-ops-hub__card-icon { background: linear-gradient(135deg, #34c759, #30d158); }
.hwys-ops-hub__card--publish .hwys-ops-hub__card-icon { background: linear-gradient(135deg, #ff9500, #ffcc00); }
.hwys-ops-hub__card--thought .hwys-ops-hub__card-icon { background: linear-gradient(135deg, #af52de, #5856d6); }
.hwys-ops-hub__card--home .hwys-ops-hub__card-icon { background: linear-gradient(135deg, #ff2d55, #ff6482); }
.hwys-ops-hub__card--build .hwys-ops-hub__card-icon { background: linear-gradient(135deg, #1c1c1e, #636366); }
.hwys-ops-hub__card--refresh .hwys-ops-hub__card-icon { background: linear-gradient(135deg, #5ac8fa, #007aff); }

.hwys-ops-hub__card--flow .hwys-ops-hub__card-icon::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M9 6h11M9 12h11M9 18h11M4 6h.01M4 12h.01M4 18h.01'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M9 6h11M9 12h11M9 18h11M4 6h.01M4 12h.01M4 18h.01'/%3E%3C/svg%3E");
}

.hwys-ops-hub__card--chat .hwys-ops-hub__card-icon::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M21 15a4 4 0 0 1-4 4H8l-5 3V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M21 15a4 4 0 0 1-4 4H8l-5 3V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z'/%3E%3C/svg%3E");
}

.hwys-ops-hub__card--data .hwys-ops-hub__card-icon::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M8 13h8M8 17h8'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M8 13h8M8 17h8'/%3E%3C/svg%3E");
}

.hwys-ops-hub__card--publish .hwys-ops-hub__card-icon::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M2 12h20M12 2a15 15 0 0 1 0 20M12 2a15 15 0 0 0 0 20'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M2 12h20M12 2a15 15 0 0 1 0 20M12 2a15 15 0 0 0 0 20'/%3E%3C/svg%3E");
}

.hwys-ops-hub__card--thought .hwys-ops-hub__card-icon::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M9 18h6M10 22h4M12 2a7 7 0 0 0-4 12.7V17h8v-2.3A7 7 0 0 0 12 2z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M9 18h6M10 22h4M12 2a7 7 0 0 0-4 12.7V17h8v-2.3A7 7 0 0 0 12 2z'/%3E%3C/svg%3E");
}

.hwys-ops-hub__card--home .hwys-ops-hub__card-icon::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1'/%3E%3C/svg%3E");
}

.hwys-ops-hub__card--build .hwys-ops-hub__card-icon::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M16 18l6-6-6-6M8 6l-6 6 6 6M14 4l-4 16'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M16 18l6-6-6-6M8 6l-6 6 6 6M14 4l-4 16'/%3E%3C/svg%3E");
}

.hwys-ops-hub__card--refresh .hwys-ops-hub__card-icon::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M21 12a9 9 0 1 1-2.6-6.4'/%3E%3Cpath d='M21 3v6h-6'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M21 12a9 9 0 1 1-2.6-6.4'/%3E%3Cpath d='M21 3v6h-6'/%3E%3C/svg%3E");
}

.hwys-ops-hub__card-body {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
    flex: 1;
}

.hwys-ops-hub__card--priority .hwys-ops-hub__card-label {
    font-size: 1rem;
}

.hwys-ops-hub__card-label {
    font-family: var(--hwys-font-display);
    font-size: 0.94rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--hwys-text);
}

.hwys-ops-hub__card-desc {
    font-size: 0.72rem;
    line-height: 1.45;
    color: var(--hwys-muted);
}

.hwys-ops-hub__card-arrow {
    flex-shrink: 0;
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 50%;
    background: rgba(0, 122, 255, 0.08);
    opacity: 0.55;
    transition: transform var(--hwys-transition), opacity var(--hwys-transition), background var(--hwys-transition);
}

.hwys-ops-hub__card-arrow::after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: var(--hwys-accent);
    -webkit-mask: center / 55% no-repeat;
    mask: center / 55% no-repeat;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23007aff' stroke-width='2.5'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23007aff' stroke-width='2.5'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E");
}

.hwys-ops-hub__card:hover .hwys-ops-hub__card-arrow {
    opacity: 1;
    transform: translateX(2px);
    background: rgba(0, 122, 255, 0.14);
}

@media (max-width: 640px) {
    .hwys-ops-hub {
        padding: 1.1rem 1rem 1.25rem;
    }

    .hwys-ops-hub__group--primary .hwys-ops-hub__grid,
    .hwys-ops-hub__grid {
        grid-template-columns: 1fr;
    }
}

/* --- 運営キーアイコン（ハブ・パイプライン・サブパネル共通） --- */
.hwys-ops-key-icon {
    flex-shrink: 0;
    position: relative;
    border-radius: 8px;
    background: var(--hwys-gradient-brand);
    box-shadow: 0 3px 10px rgba(88, 86, 214, 0.22);
}

.hwys-ops-key-icon::after {
    content: "";
    position: absolute;
    inset: 0;
    margin: auto;
    background: #fff;
    opacity: 0.95;
    -webkit-mask: center / contain no-repeat;
    mask: center / contain no-repeat;
}

.hwys-ops-pipeline__icon.hwys-ops-key-icon {
    width: 1.4rem;
    height: 1.4rem;
    border-radius: 7px;
}

.hwys-ops-pipeline__icon.hwys-ops-key-icon::after {
    width: 0.82rem;
    height: 0.82rem;
}

.hwys-ops-subpanels__icon.hwys-ops-key-icon {
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 6px;
}

.hwys-ops-subpanels__icon.hwys-ops-key-icon::after {
    width: 0.72rem;
    height: 0.72rem;
}

.hwys-ops-key-icon--flow,
.hwys-ops-key-icon--edit {
    background: linear-gradient(135deg, #5856d6, #007aff);
}

.hwys-ops-key-icon--chat {
    background: linear-gradient(135deg, #007aff, #5ac8fa);
}

.hwys-ops-key-icon--data {
    background: linear-gradient(135deg, #34c759, #30d158);
}

.hwys-ops-key-icon--publish {
    background: linear-gradient(135deg, #ff9500, #ffcc00);
}

.hwys-ops-key-icon--thought {
    background: linear-gradient(135deg, #af52de, #5856d6);
}

.hwys-ops-key-icon--home,
.hwys-ops-key-icon--hub {
    background: linear-gradient(135deg, #ff2d55, #ff6482);
}

.hwys-ops-key-icon--build {
    background: linear-gradient(135deg, #1c1c1e, #636366);
}

.hwys-ops-key-icon--refresh {
    background: linear-gradient(135deg, #5ac8fa, #007aff);
}

.hwys-ops-key-icon--payment {
    background: linear-gradient(135deg, #059669, #047857);
}

.hwys-ops-key-icon--flow::after,
.hwys-ops-key-icon--edit::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M9 6h11M9 12h11M9 18h11M4 6h.01M4 12h.01M4 18h.01'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M9 6h11M9 12h11M9 18h11M4 6h.01M4 12h.01M4 18h.01'/%3E%3C/svg%3E");
}

.hwys-ops-key-icon--chat::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M21 15a4 4 0 0 1-4 4H8l-5 3V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M21 15a4 4 0 0 1-4 4H8l-5 3V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z'/%3E%3C/svg%3E");
}

.hwys-ops-key-icon--data::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M8 13h8M8 17h8'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6M8 13h8M8 17h8'/%3E%3C/svg%3E");
}

.hwys-ops-key-icon--publish::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M2 12h20M12 2a15 15 0 0 1 0 20M12 2a15 15 0 0 0 0 20'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M2 12h20M12 2a15 15 0 0 1 0 20M12 2a15 15 0 0 0 0 20'/%3E%3C/svg%3E");
}

.hwys-ops-key-icon--thought::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M9 18h6M10 22h4M12 2a7 7 0 0 0-4 12.7V17h8v-2.3A7 7 0 0 0 12 2z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M9 18h6M10 22h4M12 2a7 7 0 0 0-4 12.7V17h8v-2.3A7 7 0 0 0 12 2z'/%3E%3C/svg%3E");
}

.hwys-ops-key-icon--home::after,
.hwys-ops-key-icon--hub::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1'/%3E%3C/svg%3E");
}

.hwys-ops-key-icon--build::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M16 18l6-6-6-6M8 6l-6 6 6 6M14 4l-4 16'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M16 18l6-6-6-6M8 6l-6 6 6 6M14 4l-4 16'/%3E%3C/svg%3E");
}

.hwys-ops-key-icon--refresh::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M21 12a9 9 0 1 1-2.6-6.4'/%3E%3Cpath d='M21 3v6h-6'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cpath d='M21 12a9 9 0 1 1-2.6-6.4'/%3E%3Cpath d='M21 3v6h-6'/%3E%3C/svg%3E");
}

.hwys-ops-key-icon--payment::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Crect x='2' y='5' width='20' height='14' rx='2'/%3E%3Cpath d='M2 10h20'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Crect x='2' y='5' width='20' height='14' rx='2'/%3E%3Cpath d='M2 10h20'/%3E%3C/svg%3E");
}

.hwys-ops-key-icon--settings {
    background: linear-gradient(135deg, #5856d6, #af52de);
}

.hwys-ops-key-icon--settings::after {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42'/%3E%3C/svg%3E");
}

/* --- 顧客運営ワークスペース（フロー・ヒアリング・公開＋制作画面） --- */
body.hwys-page--ops-workspace {
    background: var(--hwys-gradient-calm);
    background-attachment: fixed;
}

body.hwys-page--ops-workspace .hwys-app-body--edit,
body.hwys-page--ops-workspace .hwys-app-body {
    max-width: 1080px;
}

body.hwys-page--ops-workspace--payment .hwys-app-body--edit,
body.hwys-page--ops-workspace--payment .hwys-app-body {
    max-width: 1180px;
}

body.hwys-page--ops-workspace .hwys-page-head__title {
    font-family: var(--hwys-font-display);
    letter-spacing: -0.03em;
}

body.hwys-page--ops-workspace .hwys-customer-ids {
    margin: 0 0 1rem;
    padding: 0.45rem 0.75rem;
    border-radius: var(--hwys-radius);
    border: 1px solid var(--hwys-separator);
    background: rgba(255, 255, 255, 0.55);
    backdrop-filter: saturate(160%) blur(12px);
    -webkit-backdrop-filter: saturate(160%) blur(12px);
}

.hwys-ops-nav {
    position: relative;
    margin: 0 0 1rem;
    padding: 0.85rem 0.95rem 0.75rem;
    border: 1px solid rgba(255, 255, 255, 0.65);
    border-radius: var(--hwys-radius-xl);
    background: rgba(255, 255, 255, 0.78);
    backdrop-filter: saturate(180%) blur(22px);
    -webkit-backdrop-filter: saturate(180%) blur(22px);
    box-shadow: var(--hwys-shadow-md), 0 0 0 1px rgba(88, 86, 214, 0.05);
    overflow: visible;
}

.hwys-ops-nav::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 2px;
    background: var(--hwys-gradient-brand);
    opacity: 0.75;
    pointer-events: none;
}

.hwys-ops-nav--solo {
    margin-bottom: 1.1rem;
}

.hwys-ops-nav .hwys-ops-pipeline {
    margin: 0 0 0.75rem;
}

.hwys-ops-nav .hwys-ops-subpanels {
    margin: 0;
    padding: 0.55rem 0 0;
    border-bottom: none;
    border-top: 1px solid var(--hwys-separator);
    gap: 0.4rem;
}

.hwys-ops-nav--solo .hwys-ops-pipeline {
    margin-bottom: 0;
}

body.hwys-page--ops-workspace .hwys-ops-pipeline__item {
    background: rgba(255, 255, 255, 0.92);
    border-color: rgba(60, 60, 67, 0.1);
    font-family: var(--hwys-font-display);
    font-size: 0.9rem;
    letter-spacing: -0.01em;
}

body.hwys-page--ops-workspace .hwys-ops-pipeline__item.is-active {
    background: var(--hwys-gradient-brand);
    border-color: transparent;
    color: #fff;
    box-shadow: var(--hwys-shadow-glow), var(--hwys-shadow-md);
}

body.hwys-page--ops-workspace .hwys-ops-pipeline__item.is-active .hwys-ops-pipeline__label {
    color: #fff;
}

body.hwys-page--ops-workspace .hwys-ops-pipeline__item.is-active .hwys-ops-pipeline__icon {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

@media (hover: hover) {
    body.hwys-page--ops-workspace .hwys-ops-pipeline__item.is-active:hover {
        color: #fff;
        background: var(--hwys-gradient-brand);
        border-color: transparent;
    }
}

body.hwys-page--ops-workspace .hwys-ops-subpanels__item {
    border-radius: var(--hwys-radius-sm);
    background: rgba(255, 255, 255, 0.7);
    border-color: rgba(60, 60, 67, 0.1);
    font-weight: 700;
    transition:
        transform var(--hwys-transition),
        border-color var(--hwys-transition),
        box-shadow var(--hwys-transition),
        background var(--hwys-transition);
}

body.hwys-page--ops-workspace .hwys-ops-subpanels__item:hover {
    transform: translateY(-1px);
    background: #fff;
    box-shadow: var(--hwys-shadow-sm);
}

body.hwys-page--ops-workspace .hwys-ops-subpanels__item.is-active {
    background: linear-gradient(145deg, rgba(88, 86, 214, 0.12) 0%, rgba(255, 255, 255, 0.98) 55%);
    border-color: rgba(88, 86, 214, 0.35);
    color: var(--hwys-primary);
    box-shadow: var(--hwys-shadow-sm);
}

body.hwys-page--ops-workspace .hwys-flow-next-task {
    padding: 0.75rem 1rem;
    border-radius: var(--hwys-radius);
    border: 1px solid rgba(255, 59, 48, 0.22);
    background: linear-gradient(135deg, rgba(255, 59, 48, 0.08) 0%, rgba(255, 255, 255, 0.95) 72%);
    box-shadow: var(--hwys-shadow-sm);
}

body.hwys-page--ops-workspace .hwys-flow-next-task__label {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0 0 0.4rem;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--hwys-danger-fg);
    background: rgba(255, 59, 48, 0.1);
}

body.hwys-page--ops-workspace .hwys-flow-next-task__link--chat,
body.hwys-page--ops-workspace .hwys-flow-next-task__link--alert {
    color: var(--hwys-danger-fg);
}

body.hwys-page--ops-workspace .hwys-workflow-ops,
body.hwys-page--ops-workspace .hwys-admin-hub,
body.hwys-page--ops-workspace .hwys-workflow-compare,
body.hwys-page--ops-workspace .hwys-edit-form > fieldset,
body.hwys-page--ops-workspace .hwys-edit-form > h2 {
    scroll-margin-top: 1rem;
}

body.hwys-page--ops-workspace .hwys-workflow-ops {
    padding: 1.2rem 1.25rem 1.3rem;
    border: 1px solid rgba(255, 255, 255, 0.65);
    border-radius: var(--hwys-radius-xl);
    background: rgba(255, 255, 255, 0.82);
    backdrop-filter: saturate(180%) blur(18px);
    -webkit-backdrop-filter: saturate(180%) blur(18px);
    box-shadow: var(--hwys-shadow-md);
}

body.hwys-page--ops-workspace .hwys-workflow-ops__title {
    font-family: var(--hwys-font-display);
    letter-spacing: -0.02em;
}

body.hwys-page--ops-workspace .hwys-workflow-ops__phase {
    border-radius: var(--hwys-radius);
    border-color: rgba(60, 60, 67, 0.1);
    box-shadow: var(--hwys-shadow-sm);
    background: rgba(255, 255, 255, 0.95);
}

body.hwys-page--ops-workspace .hwys-workflow-ops__phase.is-current {
    border-color: rgba(88, 86, 214, 0.35);
    background: linear-gradient(145deg, rgba(88, 86, 214, 0.08) 0%, #fff 58%);
    box-shadow: var(--hwys-shadow-sm), 0 0 0 1px rgba(88, 86, 214, 0.1);
}

body.hwys-page--ops-workspace .hwys-admin-hub {
    padding: 1.2rem 1.25rem;
    border: 1px solid rgba(255, 255, 255, 0.65);
    border-radius: var(--hwys-radius-xl);
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: saturate(180%) blur(18px);
    -webkit-backdrop-filter: saturate(180%) blur(18px);
    box-shadow: var(--hwys-shadow-md);
}

body.hwys-page--ops-workspace .hwys-admin-hub__title {
    font-family: var(--hwys-font-display);
    letter-spacing: -0.02em;
}

body.hwys-page--ops-workspace .hwys-admin-hub__card {
    border-radius: var(--hwys-radius);
    box-shadow: var(--hwys-shadow-sm);
    transition: box-shadow var(--hwys-transition), transform var(--hwys-transition);
}

@media (hover: hover) {
    body.hwys-page--ops-workspace .hwys-admin-hub__card:hover {
        transform: translateY(-1px);
        box-shadow: var(--hwys-shadow-md);
    }
}

body.hwys-page--ops-workspace .hwys-workflow-compare {
    padding: 1rem 1.1rem;
    border-radius: var(--hwys-radius-lg);
    border: 1px solid rgba(88, 86, 214, 0.15);
    background: rgba(255, 255, 255, 0.75);
    backdrop-filter: saturate(160%) blur(14px);
    -webkit-backdrop-filter: saturate(160%) blur(14px);
    box-shadow: var(--hwys-shadow-sm);
}

body.hwys-page--ops-workspace .hwys-workflow-compare__card {
    border-radius: var(--hwys-radius);
    box-shadow: var(--hwys-shadow-sm);
}

body.hwys-page--ops-workspace .hwys-edit-form > h2 {
    margin-top: 1.35rem;
    font-family: var(--hwys-font-display);
    font-size: 1.08rem;
    letter-spacing: -0.02em;
}

body.hwys-page--ops-workspace .hwys-edit-form > fieldset {
    margin-top: 0.65rem;
    padding: 0.9rem 1rem;
    border: 1px solid rgba(60, 60, 67, 0.1) !important;
    border-radius: var(--hwys-radius) !important;
    background: rgba(255, 255, 255, 0.88);
    box-shadow: var(--hwys-shadow-sm);
}

body.hwys-page--ops-workspace .hwys-edit-form > fieldset > legend {
    font-family: var(--hwys-font-display);
    font-weight: 700;
}

body.hwys-page--ops-workspace .hwys-admin-token-once,
body.hwys-page--ops-workspace .hwys-admin-access-panel,
body.hwys-page--ops-workspace .hwys-admin-inbox-panel {
    border-radius: var(--hwys-radius-lg);
    box-shadow: var(--hwys-shadow-sm);
}

@media (max-width: 640px) {
    .hwys-ops-nav {
        padding: 0.75rem 0.8rem 0.65rem;
    }

    body.hwys-page--ops-workspace .hwys-ops-pipeline__item {
        flex: 1 1 calc(50% - 0.35rem);
        min-width: 0;
    }

    body.hwys-page--ops-workspace .hwys-ops-subpanels__item {
        flex: 1 1 calc(50% - 0.35rem);
        min-width: 0;
        justify-content: center;
    }
}

.hwys-index-ops__chip--hp {
    font-weight: 700;
}

.hwys-admin-hub__history-fold {
    margin-top: 1rem;
    border-top: 1px solid var(--hwys-separator);
    padding-top: 0.5rem;
}

.hwys-admin-hub__history-fold-summary {
    cursor: pointer;
    font-weight: 700;
    padding: 0.5rem 0;
}

.hwys-admin-tech-ids {
    margin: 1rem 0;
    padding: 0.5rem 0.75rem;
    border: 1px dashed var(--hwys-separator);
    border-radius: var(--hwys-radius-md);
}

.hwys-admin-tech-ids__dl {
    margin: 0.5rem 0 0;
    font-size: 0.82rem;
}

.hwys-admin-tech-ids__dl dt {
    font-weight: 700;
    color: var(--hwys-text-secondary);
}

.hwys-change-guide {
    margin: 0 0 1.5rem;
    padding: 1rem 1.1rem;
    border-radius: var(--hwys-radius-lg);
    border: 1px solid var(--hwys-separator);
    background: var(--hwys-bg-elevated);
}

.hwys-change-guide__title {
    margin: 0 0 0.35rem;
    font-size: 1.05rem;
}

.hwys-change-guide__grid {
    display: grid;
    gap: 0.75rem;
    margin-top: 0.75rem;
}

@media (min-width: 720px) {
    .hwys-change-guide__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.hwys-change-guide__card {
    padding: 0.75rem 0.85rem;
    border-radius: var(--hwys-radius-md);
    border: 1px solid var(--hwys-separator);
    background: var(--hwys-bg);
}

.hwys-change-guide__card-title {
    margin: 0 0 0.35rem;
    font-size: 0.95rem;
}

.hwys-change-guide__dl {
    margin: 0.5rem 0 0;
    font-size: 0.82rem;
}

.hwys-change-guide__dl dt {
    font-weight: 700;
    color: var(--hwys-text-secondary);
}

.hwys-index-ops__chip--flow.is-active,
.hwys-index-ops__chip--data.is-emphasis {
    border-color: var(--hwys-accent);
}

body.hwys-page--edit.hwys-page--shell .hwys-app-body--edit {
    max-width: 960px;
}

/* --- ヒアリング必須マーク --- */
.hwys-req-mark {
    display: inline-block;
    margin-left: 0.25rem;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    vertical-align: middle;
    background: #fef3c7;
    color: #b45309;
    border: 1px solid #fcd34d;
}

/* --- 進捗・本送信ヒント --- */
.hwys-submit-hint {
    margin: 0.45rem 0 0;
    font-size: 0.82rem;
}

.hwys-submit-hint--ok {
    color: #047857;
}

.hwys-submit-hint--warn {
    color: #b45309;
}

/* --- 思想翻訳：代表者へのメッセージ（最優先） --- */
.hwys-hearing-mind-message {
    margin: 0 0 1.25rem;
    padding: 1.15rem 1.25rem;
    background: linear-gradient(135deg, #fdf4ff 0%, #fff7ed 100%);
    border: 2px solid #e9d5ff;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(88, 28, 135, 0.06);
}

.hwys-hearing-mind-message__title {
    margin: 0 0 0.65rem;
    font-size: 1.12rem;
    color: #6b21a8;
}

.hwys-hearing-mind-message__text {
    margin: 0 0 0.55rem;
    font-size: 0.92rem;
    line-height: 1.75;
    color: #374151;
}

.hwys-hearing-mind-message__text:last-child {
    margin-bottom: 0;
    font-weight: 600;
    color: #7c3aed;
}

/* --- 思想翻訳 mind 記入ガイド・例文 --- */
.hwys-hearing-writing-guide {
    margin: 0 0 1.25rem;
    padding: 1rem 1.1rem;
    background: linear-gradient(135deg, #f0f9ff 0%, #ecfdf5 100%);
    border: 1px solid #bae6fd;
    border-radius: 10px;
}

.hwys-hearing-writing-guide__title {
    margin: 0 0 0.45rem;
    font-size: 1.05rem;
}

.hwys-hearing-writing-guide__lead {
    margin: 0 0 0.65rem;
    font-size: 0.88rem;
    line-height: 1.65;
}

.hwys-hearing-writing-guide__list {
    margin: 0;
    padding-left: 1.15rem;
    font-size: 0.85rem;
    line-height: 1.6;
}

.hwys-hearing-section-guide {
    margin-bottom: 1rem;
}

.hwys-pages-sitemap {
    margin: 0 0 0.75rem;
    padding: 0.75rem 0.85rem;
    background: #fff;
    border: 1px solid rgba(60, 60, 67, 0.12);
    border-radius: 8px;
    font-size: 0.82rem;
}

.hwys-pages-sitemap__title {
    margin: 0 0 0.45rem;
    font-weight: 600;
    font-size: 0.84rem;
}

.hwys-pages-sitemap__list {
    margin: 0;
    padding-left: 1.2rem;
    line-height: 1.55;
}

.hwys-pages-sitemap__auto {
    color: var(--hwys-muted, #64748b);
}

.hwys-domain-availability {
    margin: 0.65rem 0 0;
    font-size: 0.82rem;
    line-height: 1.5;
}

.hwys-field-hint {
    margin: 0.2rem 0 0.65rem;
    font-size: 0.78rem;
    line-height: 1.45;
}

.hwys-term-explain {
    font-weight: 400;
    font-size: 0.82em;
    color: var(--hwys-muted, #64748b);
}

.hwys-pages-sitemap__notice {
    margin: 0 0 0.65rem;
    padding: 0.65rem 0.85rem;
    font-size: 0.84rem;
    line-height: 1.55;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 8px;
    color: #78350f;
}

.hwys-pages-sitemap__notice strong {
    color: #92400e;
}

.hwys-pages-sitemap__contract-note {
    margin: 0.55rem 0 0;
    font-size: 0.82rem;
    line-height: 1.5;
}

.hwys-page-map {
    margin: 0.75rem 0 1rem;
    max-width: 20rem;
    border: 1px solid rgba(60, 60, 67, 0.14);
    border-radius: 10px;
    overflow: hidden;
    font-size: 0.8rem;
    line-height: 1.45;
    background: #fff;
}

.hwys-page-map__block {
    padding: 0.55rem 0.75rem;
    border-bottom: 1px solid rgba(60, 60, 67, 0.08);
}

.hwys-page-map__block:last-child {
    border-bottom: none;
}

.hwys-page-map__block--header {
    background: #f8fafc;
    color: #475569;
}

.hwys-page-map__block--body {
    background: #fff;
    min-height: 2.5rem;
    color: #64748b;
}

.hwys-page-map__block--footer {
    background: linear-gradient(180deg, #ecfdf5 0%, #d1fae5 100%);
    color: #065f46;
    position: relative;
}

.hwys-page-map__block--highlight {
    box-shadow: inset 0 0 0 2px #10b981;
}

.hwys-page-map__label {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    color: #94a3b8;
    margin-right: 0.35rem;
}

.hwys-page-map__pin {
    display: block;
    font-size: 0.75rem;
    color: #10b981;
    line-height: 1;
    margin-bottom: 0.15rem;
}

.hwys-page-map__sub {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.72rem;
    color: #047857;
    opacity: 0.9;
}

.hwys-footer-note-lead {
    margin-bottom: 0.5rem;
}

.hwys-mind-writing-example {
    margin: 0.25rem 0 0.65rem;
    padding: 0.55rem 0.75rem;
    background: var(--hwys-surface, #fff);
    border: 1px dashed var(--hwys-border, #d1d5db);
    border-radius: 8px;
    font-size: 0.82rem;
}

.hwys-mind-writing-example__summary {
    cursor: pointer;
    font-weight: 600;
    color: #0369a1;
}

.hwys-mind-writing-example__notice {
    margin: 0.5rem 0 0.35rem;
    font-size: 0.78rem;
    line-height: 1.5;
}

.hwys-mind-writing-example__block {
    margin-top: 0.55rem;
    padding: 0.5rem 0.65rem;
    border-radius: 6px;
}

.hwys-mind-writing-example__block--weak {
    background: #fef2f2;
    border: 1px solid #fecaca;
}

.hwys-mind-writing-example__block--good {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
}

.hwys-mind-writing-example__label {
    display: block;
    margin-bottom: 0.25rem;
    font-size: 0.78rem;
}

.hwys-mind-writing-example__text {
    margin: 0;
    line-height: 1.55;
    white-space: pre-wrap;
}

.hwys-mind-depth-intro {
    margin: 0 0 1rem;
    font-size: 0.86rem;
    line-height: 1.6;
}

.hwys-thought-ai-callout {
    margin: 0 0 1rem;
    padding: 0.75rem 1rem;
    background: #eff6ff;
    border: 1px solid #93c5fd;
    border-radius: 8px;
    font-size: 0.88rem;
    line-height: 1.55;
}

.hwys-thought-edit-actions-hint {
    margin: 0.5rem 0 0;
    font-size: 0.82rem;
}

.hwys-progress-next {
    margin: 0.35rem 0 0;
    font-size: 0.82rem;
    color: var(--hwys-muted);
}

.hwys-progress-next a {
    font-weight: 600;
}

.hwys-progress-next--celebrate {
    color: #5b21b6;
    font-weight: 600;
}

/* --- HP 構築（運営） --- */
.hwys-build-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.75rem;
    margin: 0 0 1.25rem;
    padding: 0.85rem 1rem;
    background: var(--hwys-bg-elevated);
    border: 1px solid var(--hwys-separator);
    border-radius: var(--hwys-radius);
    box-shadow: var(--hwys-shadow-sm);
    font-size: 0.9375rem;
}

.hwys-build-meta__item {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.hwys-build-meta__item code {
    font-size: 0.8125rem;
}

.hwys-build-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 1rem;
    margin-bottom: 1rem;
}

.hwys-build-editor-pane,
.hwys-build-preview-pane {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-width: 0;
}

.hwys-build-editor-pane label,
.hwys-build-preview-pane__head {
    font-weight: 700;
    font-size: 0.9375rem;
}

.hwys-build-preview-pane__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.35rem 0.75rem;
}

textarea.hwys-html-editor {
    width: 100%;
    min-height: 480px;
    flex: 1;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 13px;
    line-height: 1.45;
    padding: 0.85rem 1rem;
    border: 1px solid var(--hwys-border);
    border-radius: var(--hwys-radius);
    background: var(--hwys-code-bg);
    color: var(--hwys-text);
    resize: vertical;
    box-sizing: border-box;
}

textarea.hwys-html-editor:focus {
    outline: none;
    border-color: var(--hwys-accent);
    box-shadow: var(--hwys-glow-focus);
}

.hwys-build-preview {
    width: 100%;
    min-height: 480px;
    flex: 1;
    border: 1px solid var(--hwys-border);
    border-radius: var(--hwys-radius);
    background: #fff;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.04);
}

.hwys-build-preview-hint {
    font-size: 0.8125rem;
    color: var(--hwys-muted);
    font-weight: 500;
}

.hwys-build-preview-hint.is-live {
    color: var(--hwys-success-fg);
}

@media (max-width: 960px) {
    .hwys-build-split {
        grid-template-columns: 1fr;
    }

    textarea.hwys-html-editor,
    .hwys-build-preview {
        min-height: 320px;
    }
}

/* --- 顧客プレビュー --- */
body.hwys-page--preview {
    margin: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: #0f172a;
}

.hwys-preview-chrome {
    background: linear-gradient(135deg, #312e81 0%, #6366f1 45%, #ec4899 100%);
    color: #fff;
    box-shadow: 0 4px 20px rgba(15, 23, 42, 0.25);
}

.hwys-preview-chrome__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0.75rem 1.25rem;
}

.hwys-preview-chrome__eyebrow {
    display: block;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    opacity: 0.85;
}

.hwys-preview-chrome__title {
    font-size: 1.05rem;
}

.hwys-preview-chrome__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.hwys-preview-chrome .hwys-btn--ghost {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.35);
    color: #fff;
}

.hwys-preview-chrome .hwys-btn--ghost:hover {
    background: rgba(255, 255, 255, 0.28);
    color: #fff;
}

.hwys-preview-frame {
    flex: 1;
    display: block;
    width: 100%;
    min-height: calc(100vh - 5rem);
    border: 0;
    background: #fff;
}

/* --- レスポンシブ・端末共通 --- */
@media (max-width: 768px) {
    body.hwys-page--wide,
    body.hwys-page--form,
    body.hwys-page--edit {
        margin: 0;
        padding: 0;
        max-width: none;
    }

    body.hwys-page--portal {
        margin: 0;
        padding: 0;
        max-width: none;
    }

    .hwys-portal-shell {
        padding: 1rem 0.85rem 2.5rem;
    }

    .hwys-app-bar {
        flex-direction: column;
        align-items: stretch;
    }

    .hwys-app-nav {
        overflow-x: auto;
        flex-wrap: nowrap;
        scrollbar-width: none;
        padding-bottom: 0.15rem;
    }

    .hwys-app-nav::-webkit-scrollbar {
        display: none;
    }

    .hwys-app-body {
        padding-top: 1rem;
        padding-bottom: calc(2rem + env(safe-area-inset-bottom, 0));
    }

    .hwys-data-table th,
    .hwys-data-table td {
        padding: 0.65rem 0.55rem;
        font-size: 0.875rem;
    }

    .hwys-form-section {
        padding: 1rem;
    }

    .actions {
        flex-direction: column;
        align-items: stretch;
    }

    .actions button:not(.hwys-btn):not(.hwys-hearing-section-actions__save):not(.hwys-hearing-section-actions__done):not(.hwys-hearing-section-actions__edit),
    .actions .hwys-btn,
    button[type="submit"]:not(.hwys-btn):not(.hwys-hearing-section-actions__save):not(.hwys-hearing-section-actions__done):not(.hwys-hearing-section-actions__edit) {
        width: 100%;
    }

    .hwys-ops-pipeline {
        flex-direction: column;
    }

    .hwys-ops-pipeline__item {
        justify-content: center;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* ============================================================
   §8.1 3層ハイブリッド — 顧客ジャーニー（章立て）+ 運営 Linear
   ============================================================ */

body.hwys-page--journey {
    background: var(--hwys-gradient-calm);
    background-attachment: fixed;
}

body.hwys-page--journey .hwys-form-hero h1,
body.hwys-page--journey .hwys-portal-hero h1,
.hwys-chapter__title {
    font-family: var(--hwys-font-display);
    letter-spacing: -0.03em;
}

body.hwys-page--journey .hwys-form-hero {
    border: none;
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    box-shadow: var(--hwys-shadow-lg);
    padding: clamp(1.5rem, 4vw, 2rem) clamp(1.25rem, 4vw, 1.75rem) clamp(1.35rem, 3vw, 1.6rem);
    text-align: center;
}

body.hwys-page--journey .hwys-form-hero::before {
    display: none;
}

body.hwys-page--journey .hwys-form-hero::after {
    content: '';
    position: absolute;
    top: 0;
    left: 10%;
    right: 10%;
    height: 3px;
    border-radius: 0 0 999px 999px;
    background: var(--hwys-gradient-joy);
    opacity: 0.85;
}

body.hwys-page--journey .hwys-portal-form-back {
    margin-top: 0.75rem;
}

body.hwys-page--journey .hwys-form-hero h1 {
    font-size: clamp(1.5rem, 4.5vw, 2rem);
    background: var(--hwys-gradient-joy);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

/* --- 章カード --- */
.hwys-chapter {
    position: relative;
    overflow: visible;
    padding-top: 0;
    border: 1px solid var(--hwys-separator);
    border-left: none;
    border-radius: var(--hwys-radius-xl);
    box-shadow: var(--hwys-shadow-md);
}

.hwys-chapter__banner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 1.15rem 1.35rem 0.25rem;
    min-height: 3.25rem;
}

.hwys-chapter__glyph {
    font-family: var(--hwys-font-display);
    font-size: clamp(2rem, 6vw, 2.75rem);
    font-weight: 700;
    line-height: 1;
    opacity: 0.2;
    letter-spacing: -0.04em;
    color: var(--hwys-text);
    user-select: none;
}

.hwys-chapter__done-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 999px;
    background: var(--hwys-success-bg);
    color: var(--hwys-success-fg);
    font-size: 0.85rem;
    font-weight: 800;
    animation: hwys-pop 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.hwys-chapter__body {
    padding: 0 1.35rem 0;
}

.hwys-chapter__fields {
    padding: 0.5rem 0 1.35rem;
}

/* 章カード内 — iOS Settings 風フィールドグループ */
.hwys-chapter.hwys-form-section {
    padding: 0;
    border-left: none;
    background: var(--hwys-bg-elevated);
}

.hwys-chapter .hwys-section-head__row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.35rem 0.75rem;
    margin-bottom: 0.25rem;
    padding-top: 0.15rem;
}

.hwys-chapter .hwys-chapter__title {
    margin: 0;
    font-size: 1.22rem;
    flex: 1 1 auto;
    min-width: 0;
}

.hwys-chapter .hwys-section-head__badge {
    flex-shrink: 0;
}

.hwys-chapter__fields fieldset {
    margin: 1rem 0 0;
    padding: 0;
    border: none;
    border-radius: var(--hwys-radius);
    background: #f2f2f7;
    overflow: hidden;
    box-shadow: inset 0 0 0 1px rgba(60, 60, 67, 0.12);
}

.hwys-chapter__fields fieldset:first-child {
    margin-top: 0.85rem;
}

.hwys-chapter__fields legend {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: 0.7rem 1rem;
    margin: 0;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: none;
    color: #48484a;
    background: #ebebf0;
    border-bottom: 1px solid rgba(60, 60, 67, 0.1);
    border-radius: var(--hwys-radius) var(--hwys-radius) 0 0;
}

.hwys-chapter__fields label {
    display: block;
    margin: 0;
    padding: 0.65rem 1rem 0.25rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #3a3a3c;
    line-height: 1.35;
}

.hwys-chapter__fields label:has(input[type="checkbox"]) {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-height: var(--hwys-touch-min);
    padding: 0.65rem 1rem;
    font-size: 1rem;
    font-weight: 500;
    cursor: pointer;
}

.hwys-chapter__fields label:has(input[type="checkbox"]) input {
    width: 1.15rem;
    height: 1.15rem;
    min-height: auto;
    margin: 0;
    flex-shrink: 0;
}

.hwys-chapter__fields input[type="text"]:not(.hwys-invoice-input),
.hwys-chapter__fields input[type="url"],
.hwys-chapter__fields input[type="email"],
.hwys-chapter__fields input[type="tel"],
.hwys-chapter__fields input[type="time"],
.hwys-chapter__fields input[type="datetime-local"],
.hwys-chapter__fields input[type="file"],
.hwys-chapter__fields textarea,
.hwys-chapter__fields select {
    display: block;
    width: calc(100% - 2rem);
    margin: 0 1rem 0.85rem;
    padding: 0.7rem 0.85rem;
    font-size: 1rem;
    border: 1px solid rgba(60, 60, 67, 0.18);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.hwys-chapter__fields input[type="file"].hwys-file-input,
.hwys-chapter__fields input[type="file"].hwys-page-image-input {
    width: calc(100% - 2rem);
    margin: 0 1rem 0.85rem;
    padding: 0.55rem 0.85rem;
    font-size: 0.92rem;
    line-height: 1.45;
    color: #475569;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    text-align: left;
}

.hwys-chapter__fields input[type="file"].hwys-file-input::file-selector-button,
.hwys-chapter__fields input[type="file"].hwys-page-image-input::file-selector-button {
    margin: 0 0.75rem 0 0;
    padding: 0.45rem 0.85rem;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #f8fafc;
    color: #334155;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
}

.hwys-chapter__fields input[type="file"].hwys-file-input::file-selector-button:hover,
.hwys-chapter__fields input[type="file"].hwys-page-image-input::file-selector-button:hover {
    border-color: #5856d6;
    color: #5856d6;
    background: #f5f3ff;
}

.hwys-chapter__fields textarea {
    min-height: 6rem;
    line-height: 1.5;
    resize: vertical;
}

.hwys-chapter__fields .row2 {
    display: block;
    margin: 0;
    padding: 0;
    gap: 0;
}

.hwys-chapter__fields .row2 > div {
    border-top: 1px solid rgba(60, 60, 67, 0.1);
}

.hwys-chapter__fields .row2 > div:first-child {
    border-top: none;
}

.hwys-chapter__fields .row2 > div:empty {
    display: none;
}

.hwys-chapter__fields .hwys-block-group {
    margin-top: 0.85rem;
    padding-top: 0;
    border-top: none;
}

.hwys-chapter__fields .hwys-block-label,
.hwys-chapter__fields .hwys-subheading {
    padding: 0.5rem 1rem 0.15rem;
    margin: 0;
    font-size: 0.8125rem;
    font-weight: 700;
    color: #3a3a3c;
}

.hwys-chapter__fields .muted,
.hwys-chapter__fields .img-note,
.hwys-chapter__fields ul.compact {
    margin: 0.35rem 1rem 0.85rem;
    font-size: 0.8125rem;
}

.hwys-chapter__fields ul.compact {
    padding-left: 1.15rem;
}

body.hwys-page--form form {
    padding-bottom: calc(5.5rem + env(safe-area-inset-bottom, 0));
}

.hwys-chapter__tagline {
    margin: 0.2rem 0 0.4rem;
    font-family: var(--hwys-font-display);
    font-size: 1.05rem;
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--hwys-text);
}

.hwys-chapter .hwys-section-lead {
    margin: 0 0 1rem;
    line-height: 1.6;
    text-wrap: pretty;
}

.hwys-chapter--done {
    border-color: rgba(36, 138, 61, 0.25);
}

.hwys-chapter--done .hwys-chapter__banner {
    opacity: 0.95;
}

.hwys-chapter--section-complete {
    border-color: rgba(36, 138, 61, 0.35);
    background: linear-gradient(180deg, rgba(240, 253, 244, 0.65) 0%, #fff 100%);
}

.hwys-chapter--section-complete .hwys-chapter__collapse-summary {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.85rem 1rem;
    cursor: pointer;
    list-style: none;
    font-weight: 600;
    border-radius: var(--hwys-radius-lg);
    background: rgba(240, 253, 244, 0.9);
    border: 1px solid rgba(36, 138, 61, 0.2);
}

.hwys-chapter--section-complete .hwys-chapter__collapse-summary::-webkit-details-marker {
    display: none;
}

.hwys-chapter__collapse-body {
    padding-top: 0.5rem;
}

.hwys-hearing-section-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.625rem;
    margin: 0;
    padding: 1rem 1.35rem 1.35rem;
    border-top: 1px solid rgba(15, 23, 42, 0.06);
    background: rgba(248, 250, 252, 0.65);
}

.hwys-hearing-section-actions__save,
.hwys-hearing-section-actions__done,
.hwys-hearing-section-actions__edit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 5.5rem;
    min-height: 2.5rem;
    padding: 0.55rem 1.25rem;
    border-radius: 999px;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    border: 1px solid transparent;
    box-shadow: none;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.hwys-hearing-section-actions__save {
    background: #f8fafc;
    border-color: rgba(37, 99, 235, 0.28);
    color: #1d4ed8;
    box-shadow: none;
}

.hwys-hearing-section-actions__save:hover {
    background: #eff6ff;
    border-color: rgba(37, 99, 235, 0.45);
    color: #1e40af;
}

.hwys-hearing-section-actions__done {
    background: #16a34a;
    border-color: #16a34a;
    color: #fff;
    box-shadow: 0 2px 8px rgba(22, 163, 74, 0.22);
}

.hwys-hearing-section-actions__done:hover {
    background: #15803d;
    border-color: #15803d;
    filter: none;
}

.hwys-hearing-section-actions__edit {
    background: rgba(240, 253, 244, 0.9);
    border-color: rgba(36, 138, 61, 0.25);
    color: #166534;
}

.hwys-hearing-section-actions__edit:hover {
    background: #dcfce7;
}

.hwys-hearing-tab-cards-wrap {
    margin: 0 0 1.25rem;
}

.hwys-hearing-tab-nav-sticky {
    position: sticky;
    top: 0;
    z-index: 44;
    margin: 0 0 1rem;
    padding: 0.65rem 0 0.75rem;
    background: linear-gradient(180deg, rgba(238, 246, 255, 0.98) 70%, rgba(238, 246, 255, 0) 100%);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.hwys-hearing-tab-nav-sticky__lead {
    margin: 0 0 0.45rem;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.hwys-hearing-tab-cards-group + .hwys-hearing-tab-cards-group {
    margin-top: 0.75rem;
}

.hwys-hearing-tab-cards-group__title {
    margin: 0 0 0.4rem;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.hwys-hearing-tab-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr));
    gap: 0.5rem;
}

.hwys-hearing-tab-card {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    width: 100%;
    padding: 0.65rem 0.75rem;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
    text-align: left;
    text-decoration: none;
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    appearance: none;
    -webkit-appearance: none;
    box-sizing: border-box;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

body.hwys-page--customer button.hwys-hearing-tab-card {
    margin: 0;
}

.hwys-hearing-tab-card:hover {
    border-color: rgba(37, 99, 235, 0.25);
    box-shadow: 0 2px 10px rgba(15, 23, 42, 0.06);
}

.hwys-hearing-tab-card--active {
    border-color: rgba(37, 99, 235, 0.45);
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.12);
}

.hwys-hearing-tab-card--done {
    border-color: rgba(36, 138, 61, 0.28);
    background: linear-gradient(135deg, #f0fdf4 0%, #fff 100%);
}

.hwys-hearing-tab-card--continue {
    border-color: rgba(37, 99, 235, 0.22);
}

.hwys-hearing-tab-card--empty {
    opacity: 0.92;
}

.hwys-hearing-tab-card__icon {
    display: block;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 10px;
    flex-shrink: 0;
}

.hwys-hearing-tab-card__icon.hwys-ops-key-icon::after {
    width: 1.35rem;
    height: 1.35rem;
}

.hwys-hearing-tab-card__body {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.hwys-hearing-tab-card__label {
    font-size: 0.86rem;
    font-weight: 700;
    line-height: 1.25;
}

.hwys-hearing-tab-card__status {
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.2;
}

.hwys-hearing-tab-card__status--done {
    color: #166534;
}

.hwys-hearing-tab-card__status--continue {
    color: #1d4ed8;
}

.hwys-hearing-tab-card__status--empty {
    color: #94a3b8;
}

.hwys-hearing-tab-card__status--neutral {
    color: #64748b;
}

.hwys-hearing-tab-panels {
    margin-top: 0.25rem;
}

.hwys-hearing-tab-panel__lead {
    margin: 0 0 1rem;
    font-size: 0.88rem;
}

.hwys-hearing-tab-panel .hwys-chapter + .hwys-chapter {
    margin-top: 1rem;
}

@media (max-width: 640px) {
    .hwys-hearing-tab-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .hwys-hearing-section-actions {
        justify-content: stretch;
    }

    .hwys-hearing-section-actions__save,
    .hwys-hearing-section-actions__done,
    .hwys-hearing-section-actions__edit {
        flex: 1;
    }
}

body.hwys-page--customer .hwys-hearing-section-actions .hwys-hearing-section-actions__save,
body.hwys-page--customer .hwys-hearing-section-actions .hwys-hearing-section-actions__done,
body.hwys-page--customer .hwys-hearing-section-actions .hwys-hearing-section-actions__edit {
    min-height: 2.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    border-radius: 999px;
    transform: none;
    filter: none;
    box-shadow: none;
}

body.hwys-page--customer .hwys-hearing-section-actions .hwys-hearing-section-actions__save {
    background: #f8fafc !important;
    border-color: rgba(37, 99, 235, 0.28) !important;
    color: #1d4ed8 !important;
}

body.hwys-page--customer .hwys-hearing-section-actions .hwys-hearing-section-actions__save:hover {
    background: #eff6ff !important;
    border-color: rgba(37, 99, 235, 0.45) !important;
    color: #1e40af !important;
}

body.hwys-page--customer .hwys-hearing-section-actions .hwys-hearing-section-actions__done {
    background: #16a34a !important;
    border-color: #16a34a !important;
    color: #fff !important;
}

body.hwys-page--customer .hwys-hearing-section-actions .hwys-hearing-section-actions__done:hover {
    background: #15803d !important;
    border-color: #15803d !important;
    color: #fff !important;
}

body.hwys-page--customer .hwys-hearing-section-actions .hwys-hearing-section-actions__edit {
    background: rgba(240, 253, 244, 0.9) !important;
    border-color: rgba(36, 138, 61, 0.25) !important;
    color: #166534 !important;
}

body.hwys-page--customer .hwys-form-actions--final-only {
    justify-content: center;
}

body.hwys-page--customer .hwys-form-actions--final-only button[type="submit"] {
    width: 100%;
    max-width: 22rem;
    margin: 0;
}

body.hwys-page--customer form.hwys-hearing-form {
    padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0));
    scroll-padding-bottom: 5.5rem;
}

body.hwys-page--customer .hwys-progress-overall__hint--tabs {
    margin: 0.75rem 0 0;
    font-size: 0.82rem;
    text-align: center;
}

.hwys-section-tile--customer-done {
    border-color: rgba(36, 138, 61, 0.45);
    background: linear-gradient(135deg, #f0fdf4 0%, #fff 100%);
}

.hwys-sec-progress--customer-done {
    background: #dcfce7;
    color: #166534;
}

.hwys-ops-hearing-tabs {
    margin: 0 0 1.25rem;
}

.hwys-ops-hearing-tabs__scroll {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.hwys-ops-hearing-tabs__tab {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.65rem;
    border-radius: 999px;
    border: 1px solid var(--hwys-border, #e2e8f0);
    background: #fff;
    font-size: 0.82rem;
    text-decoration: none;
    color: inherit;
}

.hwys-ops-hearing-tabs__tab--active {
    border-color: var(--hwys-accent, #2563eb);
    background: rgba(37, 99, 235, 0.08);
    font-weight: 700;
}

.hwys-ops-hearing-tabs__tab--customer-done {
    border-color: rgba(36, 138, 61, 0.35);
}

.hwys-ops-hearing-tabs__tab--started {
    border-color: rgba(37, 99, 235, 0.25);
}

.hwys-ops-hearing-overview__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
    gap: 0.5rem;
    margin: 0.75rem 0 1rem;
}

.hwys-ops-hearing-overview__card {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.65rem 0.75rem;
    border-radius: var(--hwys-radius-md, 8px);
    border: 1px solid var(--hwys-border, #e2e8f0);
    text-decoration: none;
    color: inherit;
    font-size: 0.85rem;
}

.hwys-ops-hearing-overview__card--customer-done {
    border-color: rgba(36, 138, 61, 0.4);
    background: #f0fdf4;
}

.hwys-ops-hearing-overview__card-title {
    font-weight: 700;
}

.hwys-ops-hearing-overview__card-status {
    color: var(--hwys-muted, #64748b);
    font-size: 0.78rem;
}

/* 章ごとのグラデ（mood） — バナー */
.hwys-chapter--ocean .hwys-chapter__banner { background: linear-gradient(135deg, #dbeafe 0%, #e0f2fe 55%, #fff 100%); border-radius: var(--hwys-radius-xl) var(--hwys-radius-xl) 0 0; }
.hwys-chapter--mint .hwys-chapter__banner { background: linear-gradient(135deg, #ccfbf1 0%, #ecfdf5 55%, #fff 100%); border-radius: var(--hwys-radius-xl) var(--hwys-radius-xl) 0 0; }
.hwys-chapter--sky .hwys-chapter__banner { background: linear-gradient(135deg, #e0f2fe 0%, #eff6ff 55%, #fff 100%); border-radius: var(--hwys-radius-xl) var(--hwys-radius-xl) 0 0; }
.hwys-chapter--violet .hwys-chapter__banner { background: linear-gradient(135deg, #ede9fe 0%, #f5f3ff 55%, #fff 100%); border-radius: var(--hwys-radius-xl) var(--hwys-radius-xl) 0 0; }
.hwys-chapter--rose .hwys-chapter__banner { background: linear-gradient(135deg, #fce7f3 0%, #fdf2f8 55%, #fff 100%); border-radius: var(--hwys-radius-xl) var(--hwys-radius-xl) 0 0; }
.hwys-chapter--amber .hwys-chapter__banner { background: linear-gradient(135deg, #fef3c7 0%, #fffbeb 55%, #fff 100%); border-radius: var(--hwys-radius-xl) var(--hwys-radius-xl) 0 0; }
.hwys-chapter--teal .hwys-chapter__banner { background: linear-gradient(135deg, #ccfbf1 0%, #f0fdfa 55%, #fff 100%); border-radius: var(--hwys-radius-xl) var(--hwys-radius-xl) 0 0; }
.hwys-chapter--plum .hwys-chapter__banner { background: linear-gradient(135deg, #f3e8ff 0%, #faf5ff 55%, #fff 100%); border-radius: var(--hwys-radius-xl) var(--hwys-radius-xl) 0 0; }
.hwys-chapter--coral .hwys-chapter__banner { background: linear-gradient(135deg, #ffedd5 0%, #fff7ed 55%, #fff 100%); border-radius: var(--hwys-radius-xl) var(--hwys-radius-xl) 0 0; }
.hwys-chapter--slate .hwys-chapter__banner { background: linear-gradient(135deg, #f1f5f9 0%, #f8fafc 55%, #fff 100%); border-radius: var(--hwys-radius-xl) var(--hwys-radius-xl) 0 0; }

@media (hover: hover) {
    .hwys-chapter:hover {
        box-shadow: var(--hwys-shadow-lg), var(--hwys-glow-hover);
        transform: translateY(-2px);
    }
}

.hwys-chapter {
    transition: box-shadow var(--hwys-transition), transform var(--hwys-transition);
}

/* --- 進捗（リング風ヘッド） --- */
.hwys-progress-overall {
    padding: 1.15rem 1.25rem;
    margin-bottom: 1.25rem;
    border-radius: var(--hwys-radius-xl);
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid var(--hwys-separator);
    box-shadow: var(--hwys-shadow-md);
}

.hwys-progress-overall__title {
    font-family: var(--hwys-font-display);
    font-weight: 700;
}

.hwys-progress-overall__pct strong {
    font-family: var(--hwys-font-display);
    font-size: 1.35rem;
    background: var(--hwys-gradient-joy);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.hwys-progress-next--celebrate {
    animation: hwys-shimmer 2s ease-in-out infinite;
}

@keyframes hwys-pop {
    0% { transform: scale(0.6); opacity: 0; }
    100% { transform: scale(1); opacity: 1; }
}

@keyframes hwys-shimmer {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.75; }
}

/* --- ポータル CTA --- */
.hwys-portal-cta {
    margin-top: 1.15rem;
    padding: 1.1rem 1.2rem;
    border-radius: var(--hwys-radius-lg);
    background: var(--hwys-gradient-joy);
    color: #fff;
    box-shadow: var(--hwys-shadow-lg);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.85rem 1rem;
    text-align: center;
}

.hwys-portal-cta__text {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
    flex: 1 1 100%;
}

.hwys-portal-cta__btn {
    background: #fff !important;
    color: #5856d6 !important;
    font-weight: 700;
    font-size: 1rem;
    min-height: var(--hwys-touch-min);
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    box-shadow: var(--hwys-shadow-md);
}

@media (hover: hover) {
    .hwys-portal-cta__btn:hover {
        transform: translateY(-2px);
        box-shadow: var(--hwys-glow-hover);
    }
}

/* --- 運営 Linear 風 --- */
body.hwys-page--ops {
    --hwys-bg: #fafafa;
    margin: 0;
    padding: 0;
    max-width: none;
    min-height: 100vh;
    background: var(--hwys-bg);
}

body.hwys-page--ops .hwys-page-head__title {
    font-family: var(--hwys-font-display);
}

body.hwys-page--ops .hwys-data-table {
    font-size: 0.875rem;
}

body.hwys-page--ops .hwys-data-table tbody tr {
    transition: background var(--hwys-transition);
}

body.hwys-page--ops .hwys-table-wrap {
    border-radius: var(--hwys-radius-lg);
    box-shadow: var(--hwys-shadow-sm);
}

body.hwys-page--ops .hwys-data-table th {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--hwys-muted);
    background: #fafafa;
}

body.hwys-page--ops .col-name {
    font-weight: 600;
    font-size: 0.9375rem;
}

/* --- トースト通知（保存・送信フィードバック） --- */
.hwys-toast-root {
    position: fixed;
    z-index: 9999;
    top: max(0.85rem, env(safe-area-inset-top, 0));
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    width: min(22rem, calc(100vw - 1.5rem));
    pointer-events: none;
}

.hwys-toast {
    width: 100%;
    padding: 0.85rem 1.1rem;
    border-radius: 14px;
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.45;
    text-align: center;
    box-shadow: var(--hwys-shadow-lg);
    opacity: 0;
    transform: translateY(-0.65rem) scale(0.96);
    transition: opacity 0.28s ease, transform 0.28s ease;
    pointer-events: auto;
}

.hwys-toast.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.hwys-toast--ok {
    background: rgba(255, 255, 255, 0.96);
    color: #248a3d;
    border: 1px solid rgba(52, 199, 89, 0.35);
    backdrop-filter: blur(12px);
}

.hwys-toast--err {
    background: #fff5f5;
    color: #c41e3a;
    border: 1px solid rgba(255, 45, 85, 0.35);
}

.hwys-toast--warn {
    background: #fffbeb;
    color: #92400e;
    border: 1px solid rgba(245, 158, 11, 0.35);
}

.hwys-toast--info {
    background: rgba(255, 255, 255, 0.96);
    color: #5856d6;
    border: 1px solid rgba(88, 86, 214, 0.35);
    backdrop-filter: blur(12px);
}

.hwys-save-status {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    margin: 0 0 1rem;
    padding: 0.5rem 0.85rem;
    border-radius: 999px;
    font-size: 0.8125rem;
    font-weight: 600;
    border: 1px solid var(--hwys-separator);
    background: rgba(255, 255, 255, 0.9);
    box-shadow: var(--hwys-shadow-sm);
}

.hwys-save-status__dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 999px;
    flex-shrink: 0;
}

.hwys-save-status--saved {
    color: #248a3d;
}

.hwys-save-status--saved .hwys-save-status__dot {
    background: #34c759;
}

.hwys-save-status--dirty {
    color: #b45309;
    border-color: rgba(245, 158, 11, 0.35);
    background: #fffbeb;
}

.hwys-save-status--dirty .hwys-save-status__dot {
    background: #f59e0b;
}

.hwys-save-status--saving {
    color: #5856d6;
    border-color: rgba(88, 86, 214, 0.3);
}

.hwys-save-status--saving .hwys-save-status__dot {
    background: #5856d6;
    animation: hwys-save-pulse 1s ease-in-out infinite;
}

@keyframes hwys-save-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.45; transform: scale(0.85); }
}

@media (prefers-reduced-motion: reduce) {
    .hwys-toast {
        transition: opacity 0.01ms;
        transform: none;
    }

    .hwys-save-status--saving .hwys-save-status__dot {
        animation: none;
    }
}

/* デザインカラー — 検索付きカスタムピッカー */
.hwys-chapter__fields .hwys-color-field {
    width: calc(100% - 2rem);
    margin: 0 1rem 0.85rem;
    box-sizing: border-box;
}

.hwys-chapter__fields .hwys-color-field > label {
    margin-bottom: 0.35rem;
    padding: 0;
}

.hwys-chapter__fields .hwys-color-field__search {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0 0 0.45rem;
    padding: 0.7rem 0.85rem;
    font-size: 1rem;
    border: 1px solid rgba(60, 60, 67, 0.18);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    box-sizing: border-box;
}

.hwys-chapter__fields .hwys-color-picker {
    width: 100%;
}

.hwys-chapter__fields .hwys-color-picker__trigger {
    width: 100%;
    margin: 0;
    padding: 0.7rem 0.85rem;
    border: 1px solid rgba(60, 60, 67, 0.18);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    box-sizing: border-box;
}

.hwys-chapter__fields .hwys-color-field__hint {
    margin: 0.4rem 0 0;
    padding: 0;
    font-size: 0.82rem;
}

.hwys-color-field {
    margin: 0 0 1.1rem;
    position: relative;
}

.hwys-color-field > label {
    display: block;
    font-weight: 600;
    margin-bottom: 0.35rem;
}

.hwys-color-field__search {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin-bottom: 0.45rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    font-size: 0.95rem;
}

.hwys-color-chip {
    flex: 0 0 1.35rem;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 4px;
    border: 1px solid rgba(15, 23, 42, 0.18);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.45);
}

.hwys-color-chip--empty {
    background:
        repeating-linear-gradient(45deg, #f1f5f9 0 4px, #e2e8f0 4px 8px);
}

.hwys-color-picker {
    position: relative;
}

.hwys-color-picker__trigger {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    width: 100%;
    box-sizing: border-box;
    padding: 0.55rem 0.75rem;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #fff;
    font-size: 0.95rem;
    text-align: left;
    cursor: pointer;
}

.hwys-color-picker__trigger:hover:not(:disabled) {
    border-color: #94a3b8;
}

.hwys-color-field--open .hwys-color-picker__trigger {
    border-color: #5856d6;
    box-shadow: 0 0 0 3px rgba(88, 86, 214, 0.15);
}

.hwys-color-picker__trigger:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

.hwys-color-picker__label {
    flex: 1 1 auto;
    min-width: 0;
}

.hwys-color-picker__chev {
    flex: 0 0 auto;
    color: #64748b;
    font-size: 0.85rem;
}

.hwys-color-picker__panel {
    position: absolute;
    z-index: 40;
    top: calc(100% + 0.25rem);
    left: 0;
    width: 100%;
    max-height: 16rem;
    overflow: auto;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12);
}

.hwys-color-picker__panel--fixed {
    position: fixed;
    right: auto !important;
    margin-top: 0;
}

.hwys-chapter__fields fieldset:has(.hwys-color-field--open) {
    overflow: visible;
    z-index: 50;
}

.hwys-color-picker__list {
    list-style: none;
    margin: 0;
    padding: 0.25rem 0;
}

.hwys-color-picker__item {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.45rem 0.75rem;
    cursor: pointer;
}

.hwys-color-picker__item:hover,
.hwys-color-picker__item--selected,
.hwys-color-picker__item[aria-selected="true"] {
    background: #f1f5f9;
}

.hwys-color-picker__item-text {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 0.92rem;
}

.hwys-color-field__hint {
    margin: 0.35rem 0 0;
    font-size: 0.82rem;
}

/* 画像アップロード — 説明・推奨寸法・参考例 */
.hwys-image-upload-guide {
    margin: 0.35rem 0 0.55rem;
    padding: 0.65rem 0.85rem;
    border-left: 3px solid #34c759;
    background: #f8fafc;
    border-radius: 0 8px 8px 0;
}

.hwys-image-upload-guide__title {
    margin: 0 0 0.25rem;
    font-weight: 700;
    font-size: 0.9rem;
    color: #166534;
}

.hwys-image-upload-guide__desc {
    margin: 0 0 0.35rem;
    font-size: 0.88rem;
    line-height: 1.55;
    color: #334155;
}

.hwys-image-upload-guide__size {
    margin: 0 0 0.55rem;
    font-size: 0.84rem;
    color: #475569;
}

.hwys-image-upload-guide__size-label {
    display: inline-block;
    margin-right: 0.35rem;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: #e2e8f0;
    font-size: 0.75rem;
    font-weight: 700;
    color: #334155;
}

.hwys-image-upload-examples__heading {
    margin: 0 0 0.45rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: #64748b;
}

.hwys-image-upload-examples__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
}

.hwys-image-upload-examples__item {
    margin: 0;
    text-align: center;
}

.hwys-image-upload-examples__item img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid #e2e8f0;
    background: #fff;
}

.hwys-image-upload-examples__item--icon img {
    aspect-ratio: 1 / 1;
    object-fit: contain;
    background: #fff;
    padding: 0.35rem;
}

    margin-top: 0.25rem;
    font-size: 0.72rem;
    line-height: 1.35;
    color: #64748b;
}

@media (max-width: 520px) {
    .hwys-image-upload-examples__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.hwys-chapter__fields .hwys-image-upload-guide + label {
    margin-top: 0.15rem;
}

.hwys-chapter__fields label[for^="im_"] {
    display: block;
    font-weight: 600;
    margin-bottom: 0.25rem;
}

.hwys-chapter__fields input[type="file"][id^="im_"] {
    display: block;
    width: calc(100% - 2rem);
    max-width: none;
    box-sizing: border-box;
    margin: 0 1rem 0.85rem;
}

.hwys-uploaded-images {
    margin: 0.65rem 1rem 0.85rem;
    padding: 0.75rem 0.85rem;
    border-radius: 12px;
    border: 1px solid rgba(60, 60, 67, 0.12);
    background: rgba(248, 250, 252, 0.9);
}

.hwys-uploaded-images__title {
    margin: 0 0 0.25rem;
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--hwys-text, #1a1a1a);
}

.hwys-uploaded-images__hint {
    margin: 0 0 0.65rem;
    font-size: 0.8rem;
}

.hwys-uploaded-images__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr));
    gap: 0.65rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.hwys-uploaded-images__item {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
}

.hwys-uploaded-images__link {
    display: block;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid rgba(60, 60, 67, 0.14);
    background: #fff;
}

.hwys-uploaded-images__thumb {
    display: block;
    width: 100%;
    height: 5.5rem;
    object-fit: cover;
    background: #eef2f7;
}

.hwys-uploaded-images__name {
    display: block;
    font-size: 0.72rem;
    color: var(--hwys-muted, #64748b);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.hwys-uploaded-images__remove {
    align-self: flex-start;
    padding: 0.28rem 0.65rem;
    border-radius: 999px;
    border: 1px solid rgba(220, 38, 38, 0.35);
    background: #fff;
    color: #b91c1c;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
}

.hwys-uploaded-images__remove:hover {
    background: #fef2f2;
}

.hwys-uploaded-images__item--removed {
    display: none;
}

.hwys-uploaded-images__category {
    margin: 0 0 0.35rem;
}

.hwys-uploaded-images__category-badge {
    display: inline-block;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    background: rgba(88, 86, 214, 0.1);
    color: #4338ca;
    font-size: 0.75rem;
    font-weight: 600;
}

.hwys-prod-asset-quota {
    margin: 1rem 0 0;
    padding: 0.85rem 1rem;
    border-radius: 14px;
    border: 1px solid rgba(88, 86, 214, 0.2);
    background: linear-gradient(135deg, rgba(88, 86, 214, 0.06), rgba(255, 255, 255, 0.95));
}

.hwys-prod-asset-quota--embedded {
    margin: 1.15rem 0 0;
    padding-top: 1rem;
    border-radius: 0;
    border: none;
    border-top: 1px solid rgba(60, 60, 67, 0.1);
    background: transparent;
}

.hwys-prod-asset-quota__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.35rem 0.75rem;
}

.hwys-prod-asset-quota--embedded .hwys-prod-asset-quota__title {
    font-size: 0.88rem;
}

.hwys-prod-asset-quota--embedded .hwys-prod-asset-quota__count {
    margin: 0;
    font-size: 0.95rem;
}

.hwys-prod-asset-quota__details {
    margin-top: 0.45rem;
}

.hwys-prod-asset-quota__details-summary {
    cursor: pointer;
    font-size: 0.82rem;
    font-weight: 600;
    color: #5856d6;
    list-style: none;
}

.hwys-prod-asset-quota__details-summary::-webkit-details-marker {
    display: none;
}

.hwys-prod-asset-quota__details[open] .hwys-prod-asset-quota__note {
    margin-top: 0.45rem;
}

.hwys-prod-asset-quota--full {
    border-color: rgba(245, 158, 11, 0.45);
    background: linear-gradient(135deg, rgba(245, 158, 11, 0.08), rgba(255, 255, 255, 0.95));
}

.hwys-prod-asset-quota__title {
    margin: 0;
    font-weight: 700;
    font-size: 0.95rem;
}

.hwys-prod-asset-quota__count {
    margin: 0.35rem 0 0.5rem;
    font-size: 1.05rem;
}

.hwys-prod-asset-quota__bar {
    height: 6px;
    border-radius: 999px;
    background: rgba(60, 60, 67, 0.12);
    overflow: hidden;
}

.hwys-prod-asset-quota__bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #5856d6, #7c3aed);
}

.hwys-prod-asset-quota--full .hwys-prod-asset-quota__bar span {
    background: linear-gradient(90deg, #f59e0b, #ef4444);
}

.hwys-prod-asset-quota__note {
    margin: 0.55rem 0 0;
    font-size: 0.82rem;
    line-height: 1.55;
}

.hwys-prod-asset-slot-hint {
    margin: 0.35rem 0 0.65rem;
    font-size: 0.82rem;
}

.hwys-prod-asset-slot-hint--full {
    color: #b45309;
}

.hwys-revision-assets-fieldset {
    margin-top: 1.25rem;
}

/* ヒアリング画像 — ファビコン / 初回制作用素材の差別化 */
.hwys-hearing-images-scope {
    margin: 0 0 1.15rem;
    padding: 0.95rem 1.05rem;
    border-radius: 12px;
    border: 1px solid rgba(10, 132, 255, 0.22);
    background: linear-gradient(135deg, rgba(239, 246, 255, 0.95), rgba(255, 255, 255, 0.98));
}

.hwys-hearing-images-scope__title {
    margin: 0 0 0.45rem;
    font-size: 0.88rem;
    font-weight: 700;
    color: #1d4ed8;
}

.hwys-hearing-images-scope__body {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.6;
    color: #334155;
}

.hwys-hearing-images-scope__body--portal {
    margin-top: 0.55rem;
    padding-top: 0.55rem;
    border-top: 1px dashed rgba(15, 23, 42, 0.12);
}

.hwys-hearing-asset-fieldset {
    margin: 0 0 1.15rem;
    padding: 1rem 1.05rem 1.05rem;
    border-radius: 14px;
    border: 1px solid #e2e8f0;
    background: #fff;
}

.hwys-hearing-asset-fieldset--favicon {
    border-color: rgba(13, 148, 136, 0.35);
    background: linear-gradient(180deg, rgba(240, 253, 250, 0.65) 0%, #fff 42%);
}

.hwys-hearing-asset-fieldset--build {
    border-color: rgba(217, 119, 6, 0.32);
    background: linear-gradient(180deg, rgba(255, 251, 235, 0.7) 0%, #fff 42%);
}

.hwys-hearing-asset-fieldset__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.45rem;
    height: 1.45rem;
    margin-right: 0.35rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 800;
    color: #fff;
    vertical-align: middle;
}

.hwys-hearing-asset-fieldset--favicon .hwys-hearing-asset-fieldset__badge {
    background: #0d9488;
}

.hwys-hearing-asset-fieldset--build .hwys-hearing-asset-fieldset__badge {
    background: #d97706;
}

.hwys-hearing-asset-fieldset__lead {
    margin: 0 0 0.75rem;
    line-height: 1.6;
    color: #334155;
    font-size: 0.92rem;
}

.hwys-hearing-asset-fieldset__note {
    margin: -0.35rem 0 0.75rem;
    font-size: 0.84rem;
    line-height: 1.55;
}

.hwys-hearing-asset-fieldset__upload-label {
    display: block;
    margin: 0.65rem 0 0.35rem;
    font-weight: 600;
    font-size: 0.9rem;
}

.hwys-hearing-asset-fieldset--favicon .hwys-image-upload-guide {
    border-left: 3px solid #0d9488;
    padding-left: 0.75rem;
}

.hwys-hearing-asset-fieldset--build .hwys-image-upload-guide {
    border-left: 3px solid #d97706;
    padding-left: 0.75rem;
}

.hwys-hearing-asset-fieldset .hwys-image-upload-guide__title {
    display: none;
}

.hwys-hearing-asset-fieldset .hwys-uploaded-images {
    margin-top: 0.35rem;
}

.hwys-hearing-asset-fieldset__tag {
    display: inline-block;
    margin: 0 0 0.55rem;
    padding: 0.18rem 0.55rem;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 700;
    color: #0f766e;
    background: rgba(13, 148, 136, 0.12);
}

.hwys-hearing-asset-fieldset__tag--warn {
    color: #b45309;
    background: rgba(245, 158, 11, 0.14);
}

.hwys-hearing-images-scope__body--45 {
    margin-top: 0.55rem;
    padding-top: 0.55rem;
    border-top: 1px dashed rgba(15, 23, 42, 0.1);
}

/* ヒアリング ↔ 修正依頼 — 比較カード */
.hwys-workflow-compare {
    margin: 0 0 1rem;
}

.hwys-workflow-compare__heading {
    margin: 0 0 0.65rem;
    font-size: 0.92rem;
    font-weight: 700;
    color: #1e293b;
}

.hwys-workflow-compare__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

@media (max-width: 720px) {
    .hwys-workflow-compare__grid {
        grid-template-columns: 1fr;
    }
}

.hwys-workflow-compare__card {
    padding: 0.85rem 0.95rem;
    border-radius: 12px;
    border: 1px solid #e2e8f0;
    background: #f8fafc;
}

.hwys-workflow-compare__card--hearing {
    border-color: rgba(13, 148, 136, 0.28);
}

.hwys-workflow-compare__card--portal {
    border-color: rgba(99, 102, 241, 0.28);
}

.hwys-workflow-compare__card--here {
    box-shadow: 0 0 0 2px rgba(15, 23, 42, 0.08);
}

.hwys-workflow-compare__card--hearing.hwys-workflow-compare__card--here {
    background: linear-gradient(180deg, rgba(240, 253, 250, 0.95), #fff);
    box-shadow: 0 0 0 2px rgba(13, 148, 136, 0.35);
}

.hwys-workflow-compare__card--portal.hwys-workflow-compare__card--here {
    background: linear-gradient(180deg, rgba(238, 242, 255, 0.95), #fff);
    box-shadow: 0 0 0 2px rgba(99, 102, 241, 0.35);
}

.hwys-workflow-compare__here {
    margin: 0 0 0.35rem;
    font-size: 0.76rem;
    font-weight: 800;
    color: #64748b;
}

.hwys-workflow-compare__title {
    margin: 0 0 0.25rem;
    font-size: 0.95rem;
    font-weight: 800;
    color: #0f172a;
}

.hwys-workflow-compare__when {
    margin: 0 0 0.55rem;
    font-size: 0.84rem;
    color: #475569;
}

.hwys-workflow-compare__list {
    margin: 0;
    padding-left: 1.1rem;
    font-size: 0.82rem;
    line-height: 1.55;
    color: #334155;
}

.hwys-workflow-compare__list li + li {
    margin-top: 0.25rem;
}

.hwys-workflow-compare__foot {
    margin: 0.65rem 0 0;
    font-size: 0.82rem;
    line-height: 1.55;
}

.hwys-prod-asset-admin {
    margin: 0.75rem 0 1rem;
    padding: 1rem;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #f8fafc;
}

.hwys-prod-asset-admin__head {
    margin: 0 0 0.75rem;
}

.hwys-prod-asset-admin__groups {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.hwys-prod-asset-admin__group-title {
    margin: 0 0 0.5rem;
    font-size: 0.92rem;
}

.hwys-prod-asset-admin__group-count {
    font-weight: 500;
    color: #64748b;
    font-size: 0.82rem;
}

.hwys-prod-asset-admin__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.hwys-prod-asset-admin__item {
    width: 96px;
    text-align: center;
}

.hwys-prod-asset-admin__item img {
    display: block;
    width: 96px;
    height: 72px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid #e2e8f0;
}

.hwys-prod-asset-admin__path {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.65rem;
    word-break: break-all;
}

.hwys-prod-asset-admin__badge {
    display: inline-block;
    margin-top: 0.2rem;
    padding: 0.1rem 0.4rem;
    border-radius: 999px;
    background: #fef3c7;
    color: #92400e;
    font-size: 0.65rem;
    font-weight: 600;
}

.hwys-prod-asset-hub {
    margin-top: 0.85rem;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(60, 60, 67, 0.1);
}

.hwys-prod-asset-hub__head {
    margin: 0 0 0.55rem;
    font-size: 0.88rem;
    line-height: 1.45;
}

.hwys-prod-asset-hub__preview {
    list-style: none;
    margin: 0 0 0.55rem;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    align-items: center;
}

.hwys-prod-asset-hub__preview img {
    display: block;
    width: 64px;
    height: 48px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid #e2e8f0;
}

.hwys-prod-asset-hub__more {
    font-size: 0.78rem;
    font-weight: 700;
    color: #64748b;
    padding: 0.35rem 0.5rem;
    border-radius: 8px;
    background: #f1f5f9;
}

.hwys-prod-asset-hub__cats {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.78rem;
}

.hwys-prod-asset-hub__cat-name {
    color: #334155;
}

.hwys-prod-asset-hub__cat-count {
    color: #64748b;
    font-weight: 600;
}

.hwys-prod-asset-hub__link {
    margin: 0.55rem 0 0;
    font-size: 0.82rem;
}

.hwys-index-chip--assets {
    background: rgba(88, 86, 214, 0.1);
    color: #4338ca;
}

.hwys-index-chip--pcsync {
    background: rgba(234, 88, 12, 0.14);
    color: #c2410c;
    font-weight: 700;
    text-decoration: none;
}

a.hwys-index-chip--pcsync:hover {
    background: rgba(234, 88, 12, 0.22);
}

/* ページ文面 — 原稿＋写真一体・動的追加 */
[hidden] {
    display: none !important;
}

.hwys-pages-fieldset .hwys-pages-lead {
    margin: 0 0 1rem;
    padding: 0.75rem 1rem;
    line-height: 1.55;
    border-radius: 8px;
    background: #f1f5f9;
    border-left: 3px solid #5856d6;
}

.hwys-page-unit {
    margin: 0 0 1.35rem;
    padding: 0;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}

.hwys-page-unit__banner {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.06);
}

.hwys-page-unit__banner--greeting {
    background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
}

.hwys-page-unit__banner--service {
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
}

.hwys-page-unit__banner--other {
    background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%);
}

.hwys-page-unit__glyph {
    flex: 0 0 2.5rem;
    width: 2.5rem;
    height: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    font-size: 1rem;
    font-weight: 800;
    color: #fff;
    line-height: 1;
}

.hwys-page-unit__banner--greeting .hwys-page-unit__glyph {
    background: linear-gradient(145deg, #f59e0b, #d97706);
}

.hwys-page-unit__banner--service .hwys-page-unit__glyph {
    background: linear-gradient(145deg, #3b82f6, #2563eb);
}

.hwys-page-unit__banner--other .hwys-page-unit__glyph {
    background: linear-gradient(145deg, #8b5cf6, #7c3aed);
}

.hwys-page-unit__heading {
    margin: 0;
    font-weight: 800;
    font-size: 1.05rem;
    color: #0f172a;
    letter-spacing: 0.01em;
}

.hwys-page-unit__sub {
    margin: 0.15rem 0 0;
    font-size: 0.8rem;
    color: #64748b;
    line-height: 1.4;
}

.hwys-page-unit--greeting {
    border-left: 4px solid #f59e0b;
}

.hwys-page-unit--service {
    border-left: 4px solid #3b82f6;
}

.hwys-page-unit--other {
    border-left: 4px solid #8b5cf6;
}

.hwys-page-unit > .hwys-page-block__body,
.hwys-page-unit > .hwys-dynamic-blocks,
.hwys-page-unit > .hwys-fixed-page-notice {
    padding-left: 1rem;
    padding-right: 1rem;
}

.hwys-page-unit > .hwys-page-block__body {
    padding-top: 0.85rem;
    padding-bottom: 1rem;
}

.hwys-page-unit > .hwys-fixed-page-notice {
    margin: 0.85rem 1rem 0;
}

.hwys-page-unit > .hwys-dynamic-blocks {
    padding-bottom: 1rem;
}

.hwys-page-block {
    margin: 0.75rem 0 0;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #fafbfc;
    overflow: hidden;
}

.hwys-page-block--service {
    border-color: #bfdbfe;
}

.hwys-page-block--other {
    border-color: #ddd6fe;
}

.hwys-page-block__header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.7rem 0.85rem;
    background: #fff;
    border-bottom: 1px solid #e2e8f0;
}

.hwys-page-block--service .hwys-page-block__header {
    background: linear-gradient(90deg, #f8fbff 0%, #fff 100%);
    border-bottom-color: #dbeafe;
}

.hwys-page-block--other .hwys-page-block__header {
    background: linear-gradient(90deg, #faf5ff 0%, #fff 100%);
    border-bottom-color: #ede9fe;
}

.hwys-page-block__badge {
    flex: 0 0 2.25rem;
    width: 2.25rem;
    height: 2.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    font-size: 0.95rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
    color: #fff;
    line-height: 1;
}

.hwys-page-block--service .hwys-page-block__badge {
    background: linear-gradient(145deg, #60a5fa, #2563eb);
    box-shadow: 0 2px 6px rgba(37, 99, 235, 0.25);
}

.hwys-page-block--other .hwys-page-block__badge {
    background: linear-gradient(145deg, #a78bfa, #7c3aed);
    box-shadow: 0 2px 6px rgba(124, 58, 237, 0.25);
}

.hwys-page-block__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 800;
    color: #0f172a;
    line-height: 1.3;
}

.hwys-page-block__hint {
    margin: 0.12rem 0 0;
    font-size: 0.75rem;
    color: #94a3b8;
    font-weight: 500;
}

.hwys-page-block__body {
    padding: 0.75rem 0.85rem 0.85rem;
}

.hwys-chapter__fields .hwys-page-block .hwys-field-label {
    display: block;
    margin: 0.65rem 0 0.3rem;
    padding: 0;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #64748b;
}

.hwys-chapter__fields .hwys-page-block .hwys-field-label:first-child,
.hwys-chapter__fields .hwys-page-unit > .hwys-page-block__body > .hwys-field-label:first-child {
    margin-top: 0;
}

.hwys-field-label--photo {
    margin-top: 0.85rem !important;
    padding-top: 0.65rem !important;
    border-top: 1px dashed #e2e8f0;
    color: #3b82f6 !important;
}

.hwys-page-block--other .hwys-field-label--photo {
    color: #7c3aed !important;
}

.hwys-chapter__fields .hwys-page-block label.hwys-page-image-label {
    margin: 0.35rem 0 0.25rem;
    padding: 0;
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: normal;
    text-transform: none;
    color: #475569;
}

.hwys-fixed-page-notice {
    margin: 0 0 0.75rem;
    padding: 0.65rem 0.85rem;
    border-radius: 8px;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
}

.hwys-fixed-page-notice__title {
    margin: 0 0 0.25rem;
    font-weight: 700;
    font-size: 0.88rem;
    color: #1e40af;
}

.hwys-fixed-page-notice__body {
    margin: 0;
    font-size: 0.86rem;
    line-height: 1.55;
    color: #334155;
}

.hwys-page-block .hwys-image-upload-guide {
    margin-top: 0.65rem;
}

.hwys-page-block .hwys-page-image-input,
.hwys-basic-branch-extra .hwys-file-input {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin: 0 0 0.35rem;
    padding: 0.55rem 0.75rem;
    font-size: 0.92rem;
    line-height: 1.45;
    color: #475569;
    text-align: left;
    border: 1px solid rgba(60, 60, 67, 0.18);
    border-radius: 10px;
    background: #fff;
}

.hwys-page-block .hwys-page-image-input::file-selector-button,
.hwys-basic-branch-extra .hwys-file-input::file-selector-button {
    margin: 0 0.65rem 0 0;
    padding: 0.4rem 0.75rem;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #f8fafc;
    font-size: 0.86rem;
    font-weight: 600;
}

.hwys-add-block-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    margin-top: 0;
    padding: 0.55rem 1rem;
    border: 1px dashed #94a3b8;
    border-radius: 8px;
    background: #f8fafc;
    color: #334155;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    box-sizing: border-box;
}

.hwys-add-block-btn-wrap {
    display: flex;
    justify-content: center;
    padding: 0.5rem 0.15rem 0.15rem;
    margin-top: 0.25rem;
}

.hwys-add-block-btn-wrap .hwys-add-block-btn {
    width: 100%;
    max-width: 100%;
}

.hwys-add-block-btn:hover:not(:disabled) {
    border-color: #5856d6;
    color: #5856d6;
    background: #f5f3ff;
}

.hwys-add-block-btn:disabled,
.hwys-add-block-btn[hidden] {
    display: none;
}

.hwys-block-group--collapsed {
    display: none;
}

/* 基本情報 — セクション分割・動的追加 */
.hwys-basic-fieldset {
    border: none;
    padding: 0;
    margin: 0;
}

.hwys-basic-section {
    margin: 0 0 1.15rem;
    padding: 0.85rem 0.95rem;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #fafbfc;
}

.hwys-basic-section--core {
    background: #fff;
}

.hwys-tel-field {
    margin: 0 0 0.75rem;
}

.hwys-tel-field__line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1rem;
}

.hwys-tel-field__input {
    flex: 1 1 12rem;
    min-width: 0;
}

.hwys-tel-hide-check {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0;
    font-size: 0.92rem;
    font-weight: 600;
    white-space: nowrap;
}

.hwys-invoice-field {
    margin: 0 0 0.85rem;
    padding: 0 1rem;
}

.hwys-invoice-field > label {
    display: block;
    margin-bottom: 0.35rem;
}

.hwys-invoice-field__line {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.55rem 0.75rem;
}

.hwys-invoice-input-wrap {
    display: flex;
    align-items: center;
    flex: 1 1 14rem;
    min-width: 0;
    border: 1px solid rgba(60, 60, 67, 0.18);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    overflow: hidden;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.hwys-invoice-input-wrap:focus-within {
    border-color: rgba(88, 86, 214, 0.55);
    box-shadow: 0 0 0 3px rgba(88, 86, 214, 0.12);
}

.hwys-invoice-field--none .hwys-invoice-input-wrap {
    background: #f8fafc;
    opacity: 0.78;
}

.hwys-invoice-prefix {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    padding: 0 0.35rem 0 0.85rem;
    font-weight: 700;
    font-size: 1rem;
    color: #334155;
    letter-spacing: 0.01em;
    user-select: none;
}

.hwys-invoice-input-wrap .hwys-invoice-input {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    padding: 0.7rem 0.85rem 0.7rem 0;
    border: none !important;
    border-radius: 0;
    background: transparent !important;
    box-shadow: none !important;
    outline: none;
}

.hwys-chapter__fields .hwys-invoice-field {
    margin: 0 0 0.85rem;
    padding: 0;
}

.hwys-chapter__fields .hwys-invoice-field > label {
    margin: 0 0 0.35rem;
    padding: 0 1rem;
}

.hwys-chapter__fields .hwys-invoice-field__line {
    padding: 0 1rem;
}

.hwys-chapter__fields .hwys-invoice-input-wrap {
    margin: 0;
}

.hwys-chapter__fields .hwys-invoice-input-wrap .hwys-invoice-input {
    width: auto;
    margin: 0;
}

.hwys-invoice-input {
    flex: 1 1 10rem;
    min-width: 0;
}

.hwys-invoice-none-check {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0;
    font-size: 0.92rem;
    font-weight: 600;
    white-space: nowrap;
}

.hwys-basic-section__title {
    margin: 0 0 0.65rem;
    font-size: 0.98rem;
    font-weight: 800;
    color: #0f172a;
}

.hwys-basic-row {
    margin: 0 0 0.75rem;
    padding: 0.65rem 0.75rem;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #fff;
}

.hwys-basic-row__badge {
    margin: 0 0 0.45rem;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #64748b;
    text-transform: uppercase;
}

.hwys-basic-row--branch .hwys-basic-branch-extra {
    margin-top: 0.65rem;
    padding-top: 0.55rem;
    border-top: 1px dashed #e2e8f0;
}

.hwys-basic-map-check {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0.45rem 0 0;
    font-size: 0.86rem;
    color: #334155;
}

.hwys-basic-priority {
    margin: 0.35rem 0 0;
    padding: 0.45rem 0.65rem;
    border-radius: 6px;
    background: #f1f5f9;
    font-size: 0.88rem;
    font-weight: 700;
    color: #475569;
}

.hwys-basic-ref-row {
    margin-bottom: 0.55rem;
}

.hwys-basic-section--partners {
    border-color: #bfdbfe;
    background: linear-gradient(180deg, #f8fbff 0%, #fff 100%);
}

.hwys-partner-row {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.55rem;
    margin: 0 0 0.55rem;
    padding: 0.55rem 0.65rem;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #fff;
}

.hwys-partner-row[hidden] {
    display: none !important;
}

.hwys-partner-dynamic {
    padding-top: 0.15rem;
}

.hwys-partner-row__tools {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.hwys-partner-move,
.hwys-partner-delete {
    padding: 0.2rem 0.45rem;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    background: #f8fafc;
    font-size: 0.75rem;
    cursor: pointer;
}

.hwys-partner-delete {
    color: #b91c1c;
    border-color: #fecaca;
    background: #fef2f2;
}

.hwys-partner-hwys-offer {
    margin: 0.85rem 0;
    padding: 0.75rem 0.9rem;
    border-radius: 8px;
    border: 1px solid #93c5fd;
    background: #eff6ff;
}

.hwys-partner-hwys-offer__title {
    margin: 0 0 0.35rem;
    font-weight: 800;
    font-size: 0.9rem;
    color: #1d4ed8;
}

.hwys-partner-hwys-offer__body {
    margin: 0 0 0.45rem;
    font-size: 0.86rem;
    line-height: 1.55;
    color: #334155;
}

.hwys-partner-hwys-check {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    margin: 0;
    padding: 0.55rem 0.65rem;
    border-radius: 8px;
    background: #fff;
    border: 1px solid #bfdbfe;
    font-size: 0.88rem;
    font-weight: 600;
    color: #1e40af;
    cursor: pointer;
}

.hwys-basic-section--footer-note {
    border-left: 3px solid #64748b;
}

.hwys-basic-checkline {
    display: flex;
    align-items: flex-end;
    padding-bottom: 0.35rem;
}

.hwys-chapter__fields .hwys-basic-section .hwys-field-label {
    margin: 0 0 0.25rem;
    padding: 0;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #64748b;
}

/* お支払い */
.hwys-payment-fieldset {
    border: none;
    padding: 0;
    margin: 0;
}

.hwys-payment-security {
    margin: 0 1rem 0.85rem;
    padding: 0.75rem 0.9rem;
    border: 1px solid #93c5fd;
    border-radius: 10px;
    background: linear-gradient(180deg, #eff6ff 0%, #f8fafc 100%);
}

.hwys-payment-security__title {
    margin: 0 0 0.4rem;
    font-weight: 800;
    font-size: 0.9rem;
    color: #1d4ed8;
}

.hwys-payment-security__list {
    margin: 0;
    padding-left: 1.1rem;
    font-size: 0.84rem;
    line-height: 1.55;
    color: #334155;
}

.hwys-payment-security__list li {
    margin: 0.2rem 0;
}

.hwys-payment-intro {
    margin: 0 1rem 0.85rem;
    line-height: 1.55;
}

.hwys-payment-section {
    margin: 0 1rem 0.85rem;
    padding: 0.75rem 0.85rem;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #fff;
}

.hwys-payment-section__title {
    margin: 0 0 0.25rem;
    font-weight: 800;
    font-size: 0.95rem;
    color: #0f172a;
}

.hwys-payment-section__lead {
    margin: 0 0 0.65rem;
    font-size: 0.84rem;
}

.hwys-payment-section--card {
    border-left: 3px solid #5856d6;
}

.hwys-payment-section--debit {
    border-left: 3px solid #059669;
}

.hwys-page--portal-payment .hwys-payment-fieldset {
    border: none;
    margin: 0;
    padding: 0;
    min-width: 0;
}

.hwys-page--portal-payment .hwys-payment-fieldset > legend {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.hwys-page--portal-payment .hwys-payment-section {
    margin-left: 0;
    margin-right: 0;
}

.hwys-page--portal-payment details.hwys-payment-section {
    padding: 0.85rem 1rem;
}

.hwys-page--portal-payment .hwys-portal-payment-actions .hwys-btn--accent {
    min-width: min(100%, 18rem);
}

body.hwys-page--portal-payment .hwys-portal-shell {
    max-width: min(56rem, 96vw);
}

body.hwys-page--portal-payment .hwys-portal-panel h1 {
    font-size: clamp(1.35rem, 2.5vw, 1.75rem);
}

body.hwys-page--portal-payment .hwys-payment-section {
    font-size: 1rem;
}

body.hwys-page--portal-payment .hwys-payment-section input[type="text"],
body.hwys-page--portal-payment .hwys-payment-section textarea,
body.hwys-page--portal-payment .hwys-payment-section select {
    font-size: 1rem;
}

.hwys-payment-debit-notes {
    margin: 0 0 0.85rem;
    padding-left: 1.15rem;
    font-size: 0.88rem;
    line-height: 1.55;
}

.hwys-debit-transfer-schedule {
    margin: 1rem 0 1.25rem;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(5, 150, 105, 0.22);
    border-radius: 10px;
    background: rgba(5, 150, 105, 0.04);
}

.hwys-debit-transfer-schedule__title {
    margin: 0 0 0.5rem;
    font-size: 0.95rem;
}

.hwys-debit-transfer-schedule__dl {
    margin: 0;
}

.hwys-chapter__fields .hwys-payment-section input[type="text"] {
    margin-bottom: 0.65rem;
}

.hwys-chapter__fields .hwys-payment-pair > div input[type="text"] {
    margin-bottom: 0;
}

.hwys-payment-section__subtitle {
    margin: 0.85rem 0 0.35rem;
    font-weight: 700;
    font-size: 0.9rem;
    color: #0f172a;
}

.hwys-payment-section__hint {
    margin: 0 0 0.65rem;
    font-size: 0.84rem;
    line-height: 1.55;
}

.hwys-payment-bank-kind {
    border: none;
    margin: 0 0 0.85rem;
    padding: 0;
}

.hwys-payment-bank-kind__legend {
    font-size: 0.88rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    padding: 0;
}

.hwys-payment-bank-kind__opt {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-height: var(--hwys-touch-min);
    margin: 0.35rem 0;
    padding: 0.55rem 0.75rem;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    background: #fff;
    font-size: 0.95rem;
    cursor: pointer;
}

.hwys-payment-bank-kind__opt input {
    width: 1.1rem;
    height: 1.1rem;
    margin: 0;
    flex-shrink: 0;
}

.hwys-payment-bank-panel[hidden] {
    display: none !important;
}

@media (max-width: 768px) {
    .hwys-portal-payment-form .hwys-payment-security,
    .hwys-portal-payment-form .hwys-payment-intro,
    .hwys-portal-payment-form .hwys-payment-section,
    .hwys-portal-payment-form .hwys-payment-customer-guide {
        margin-left: 0;
        margin-right: 0;
    }

    .hwys-portal-payment-form .hwys-payment-security__list,
    .hwys-portal-payment-form .hwys-payment-debit-notes,
    .hwys-portal-payment-form .hwys-payment-customer-guide__list {
        padding-left: 1rem;
        font-size: 0.88rem;
    }

    .hwys-portal-payment-form .hwys-form-actions {
        padding: 0 0 0.5rem;
    }
}

/* 顧客ログイン・ポータルメニュー */
.hwys-login-shell {
    max-width: 28rem;
}

.hwys-login-lead {
    margin: 0.75rem 0 0;
    font-size: 0.92rem;
    line-height: 1.65;
}

.hwys-login-ref-hint {
    margin: 0.65rem 0 0;
    font-size: 0.88rem;
}

.hwys-login-panel {
    margin-top: 1rem;
}

.hwys-login-form label {
    display: block;
    font-weight: 600;
    margin-bottom: 0.35rem;
}

.hwys-login-input {
    width: 100%;
    box-sizing: border-box;
    padding: 0.75rem 0.85rem;
    font-size: 1rem;
    border: 1px solid rgba(60, 60, 67, 0.2);
    border-radius: 12px;
}

.hwys-login-help {
    margin: 0.45rem 0 1rem;
    font-size: 0.82rem;
}

.hwys-login-submit {
    width: 100%;
}

.hwys-login-legal {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.35rem 0.55rem;
    margin: 1.25rem 0 0.5rem;
    font-size: 0.88rem;
}

.hwys-login-legal a {
    color: inherit;
}

.hwys-login-legal__sep {
    color: #94a3b8;
}

.hwys-login-contact {
    margin: 0.35rem 0 0;
    text-align: center;
    font-size: 0.82rem;
}

.hwys-page--legal-public .hwys-login-legal {
    margin-top: 0.75rem;
}

.hwys-admin-legal-form input[type="text"] {
    width: 100%;
    max-width: 20rem;
}

.hwys-admin-legal-preview {
    margin: 0 0 1rem;
}

.hwys-admin-legal-preview a {
    font-weight: 600;
}

.hwys-portal-logout {
    margin: 0.75rem 0 0;
    font-size: 0.82rem;
}

.hwys-portal-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    justify-content: center;
    margin-top: 0.65rem;
}

.hwys-portal-stat {
    display: inline-block;
    padding: 0.25rem 0.65rem;
    border-radius: 999px;
    background: rgba(88, 86, 214, 0.1);
    font-size: 0.78rem;
    font-weight: 600;
    color: #4338ca;
}

.hwys-portal-stat--uirefresh {
    background: rgba(245, 158, 11, 0.12);
    color: #b45309;
}

/* 旧 .hwys-portal-menu-grid の2列レイアウトは廃止 — primary/secondary 構造に統一 */

.hwys-portal-menu-card {
    position: relative;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.7rem;
    min-height: 4.35rem;
    padding: 0.8rem 0.7rem 0.8rem 0.75rem;
    border: 1px solid rgba(60, 60, 67, 0.12);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.96);
    text-decoration: none;
    color: inherit;
    text-align: left;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
    transition:
        border-color 0.15s ease,
        box-shadow 0.15s ease,
        transform 0.15s ease;
}

a.hwys-portal-menu-card:hover {
    border-color: rgba(88, 86, 214, 0.35);
    box-shadow: 0 4px 16px rgba(88, 86, 214, 0.12);
    transform: translateY(-1px);
}

.hwys-portal-menu-card--primary {
    border-color: rgba(88, 86, 214, 0.28);
    background: linear-gradient(145deg, rgba(88, 86, 214, 0.07) 0%, rgba(255, 255, 255, 0.98) 55%);
}

.hwys-portal-menu-card--started {
    border-color: rgba(88, 86, 214, 0.28);
}

.hwys-portal-menu-card--done {
    border-color: rgba(52, 199, 89, 0.28);
}

.hwys-portal-menu-card--disabled {
    opacity: 0.62;
    background: #f8fafc;
    transform: none;
    box-shadow: none;
}

.hwys-portal-menu-card__icon {
    flex-shrink: 0;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 10px;
}

.hwys-portal-menu-card__icon.hwys-ops-key-icon::after {
    width: 1.15rem;
    height: 1.15rem;
}

.hwys-portal-menu-card__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
}

.hwys-portal-menu-card__badge {
    align-self: flex-start;
    padding: 0.1rem 0.42rem;
    border-radius: 6px;
    background: #eef2f7;
    font-size: 0.68rem;
    font-weight: 700;
    color: #64748b;
    line-height: 1.35;
}

.hwys-portal-menu-card--primary .hwys-portal-menu-card__badge {
    background: rgba(88, 86, 214, 0.14);
    color: #5856d6;
}

.hwys-portal-menu-card--done .hwys-portal-menu-card__badge {
    background: rgba(52, 199, 89, 0.12);
    color: #248a3d;
}

.hwys-portal-menu-card__title {
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -0.01em;
}

.hwys-portal-menu-card__desc {
    font-size: 0.78rem;
    color: #636366;
    line-height: 1.45;
}

.hwys-portal-menu-card__arrow {
    flex-shrink: 0;
    width: 1.1rem;
    height: 1.1rem;
    margin-right: 0.05rem;
    opacity: 0.45;
    position: relative;
}

.hwys-portal-menu-card__arrow::after {
    content: "";
    position: absolute;
    inset: 0;
    margin: auto;
    width: 0.45rem;
    height: 0.45rem;
    border-right: 2px solid #94a3b8;
    border-top: 2px solid #94a3b8;
    transform: rotate(45deg);
}

a.hwys-portal-menu-card:hover .hwys-portal-menu-card__arrow {
    opacity: 0.75;
}

.hwys-portal-op-form label {
    display: block;
    font-weight: 600;
    margin: 0.85rem 0 0.35rem;
}

.hwys-portal-op-form input[type="text"],
.hwys-portal-op-form textarea,
.hwys-portal-op-form select {
    width: 100%;
    box-sizing: border-box;
    padding: 0.65rem 0.75rem;
    border: 1px solid rgba(60, 60, 67, 0.18);
    border-radius: 10px;
    font-size: 1rem;
}

.hwys-portal-op-form .hwys-btn {
    margin-top: 1.15rem;
}

.hwys-portal-quota {
    margin: 0 0 1rem;
    padding: 0.85rem 1rem;
    border-radius: 14px;
    border: 1px solid rgba(88, 86, 214, 0.22);
    background: rgba(88, 86, 214, 0.06);
}

.hwys-portal-quota--empty {
    border-color: rgba(245, 158, 11, 0.35);
    background: rgba(245, 158, 11, 0.08);
}

.hwys-portal-quota__label {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 600;
    color: #636366;
}

.hwys-portal-quota__count {
    margin: 0.25rem 0 0;
    font-size: 1.05rem;
}

.hwys-portal-quota__sub {
    margin: 0.45rem 0 0;
    font-size: 0.82rem;
    line-height: 1.5;
}

.hwys-portal-scope-notice {
    margin: 0 0 1rem;
    padding: 0.85rem 1rem;
    border-radius: 14px;
    border-left: 4px solid #5856d6;
    background: #f8fafc;
}

.hwys-portal-scope-notice__title {
    margin: 0;
    font-weight: 700;
    font-size: 0.92rem;
}

.hwys-portal-scope-notice__body {
    margin: 0.35rem 0 0;
    font-size: 0.88rem;
    line-height: 1.55;
    color: #475569;
}

.hwys-portal-category-fieldset {
    border: none;
    margin: 0;
    padding: 0;
}

.hwys-portal-category-fieldset__legend {
    font-weight: 700;
    margin-bottom: 0.35rem;
}

.hwys-portal-category-fieldset__lead {
    margin: 0 0 0.65rem;
}

.hwys-portal-category-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    align-items: stretch;
}

@media (max-width: 520px) {
    .hwys-portal-category-cards {
        grid-template-columns: 1fr;
    }
}

.hwys-portal-category-card {
    display: block;
    cursor: pointer;
    min-width: 0;
}

.hwys-portal-category-card--disabled {
    cursor: not-allowed;
}

.hwys-portal-category-card--disabled .hwys-portal-category-card__inner {
    opacity: 0.62;
    background: #f8fafc;
}

.hwys-portal-category-card input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.hwys-portal-category-card__inner {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    height: 100%;
    min-height: 9.5rem;
    padding: 0.95rem 1rem;
    border: 2px solid rgba(60, 60, 67, 0.14);
    border-radius: 14px;
    background: #fff;
    transition: border-color 0.15s, box-shadow 0.15s;
    box-sizing: border-box;
}

.hwys-portal-category-card__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.15rem;
}

.hwys-portal-category-card__badge {
    display: inline-block;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    background: rgba(88, 86, 214, 0.12);
    color: #4338ca;
    font-size: 0.68rem;
    font-weight: 700;
    white-space: nowrap;
}

.hwys-portal-category-card--disabled .hwys-portal-category-card__badge {
    background: #e2e8f0;
    color: #64748b;
}

.hwys-portal-category-card__status {
    margin-top: auto;
    padding-top: 0.35rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: #b45309;
}

.hwys-portal-category-card--selected .hwys-portal-category-card__inner,
.hwys-portal-category-card input:checked + .hwys-portal-category-card__inner {
    border-color: rgba(88, 86, 214, 0.55);
    box-shadow: 0 0 0 3px rgba(88, 86, 214, 0.12);
}

.hwys-portal-category-card__glyph {
    font-size: 1.35rem;
    line-height: 1;
}

.hwys-portal-category-card__title {
    font-weight: 700;
    font-size: 0.95rem;
}

.hwys-portal-category-card__desc,
.hwys-portal-category-card__examples {
    font-size: 0.8rem;
    line-height: 1.45;
    color: #64748b;
}

.hwys-portal-meeting-notice {
    margin: 0 0 1rem;
    padding: 0.85rem 1rem;
    border-radius: 14px;
    border: 1px solid rgba(88, 86, 214, 0.25);
    background: rgba(88, 86, 214, 0.06);
}

.hwys-portal-meeting-notice__title {
    margin: 0 0 0.35rem;
    font-weight: 700;
    font-size: 0.88rem;
    color: #4338ca;
}

.hwys-portal-meeting-notice__body {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.55;
    color: #334155;
}

.hwys-portal-source-url-caveat {
    margin: 0.5rem 0 1rem;
    padding: 0.65rem 0.85rem;
    border-radius: 10px;
    border: 1px solid var(--hwys-border, #e2e8f0);
    background: var(--hwys-surface-muted, #f8fafc);
    font-size: 0.92rem;
}
.hwys-portal-source-url-caveat summary {
    cursor: pointer;
    font-weight: 600;
}
.hwys-portal-source-url-caveat__list {
    margin: 0.65rem 0 0.5rem 1.1rem;
    padding: 0;
}
.hwys-portal-source-url-caveat__list li {
    margin: 0.25rem 0;
}
.hwys-portal-source-url-caveat__tip {
    margin: 0.5rem 0 0;
}
.hwys-admin-hp-prompt-form + .hwys-admin-hp-prompt-form {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--hwys-border, #e2e8f0);
}
.hwys-portal-post-flow {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0.75rem 0;
}
.hwys-portal-post-flow__pill {
    font-size: 0.82rem;
    padding: 0.3rem 0.65rem;
    border-radius: 999px;
    background: var(--hwys-surface-muted, #f1f5f9);
    color: var(--hwys-muted, #64748b);
}
.hwys-portal-post-flow__pill--active {
    background: var(--hwys-accent-soft, #e0e7ff);
    color: var(--hwys-accent, #4f46e5);
    font-weight: 600;
}
.hwys-portal-post-status {
    margin: 0 0 0.75rem;
    font-size: 0.9rem;
}
.hwys-portal-post-status__ok {
    color: #0f766e;
    font-weight: 600;
}
.hwys-portal-post-status__warn {
    color: #b45309;
    font-weight: 600;
}
.hwys-portal-post-help {
    margin: 0 0 1rem;
    border: 1px solid var(--hwys-border, #e2e8f0);
    border-radius: 10px;
    background: var(--hwys-surface-muted, #f8fafc);
}
.hwys-portal-post-help__summary {
    cursor: pointer;
    padding: 0.65rem 0.85rem;
    font-weight: 600;
    font-size: 0.9rem;
}
.hwys-portal-post-help__body {
    padding: 0 0.85rem 0.85rem;
    font-size: 0.88rem;
}
.hwys-portal-post-help__h {
    margin: 0.75rem 0 0.35rem;
    font-size: 0.92rem;
}
.hwys-portal-post-help__steps,
.hwys-portal-post-help__list {
    margin: 0.35rem 0 0;
    padding-left: 1.2rem;
}
.hwys-portal-post-help__dismiss {
    margin: 0.75rem 0 0;
}
.hwys-portal-post-help-fab {
    position: fixed;
    right: 1.25rem;
    bottom: 1.25rem;
    z-index: 40;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    border: none;
    background: var(--hwys-accent, #4f46e5);
    color: #fff;
    font-size: 1.15rem;
    font-weight: 700;
    box-shadow: 0 8px 24px rgba(79, 70, 229, 0.35);
    cursor: pointer;
}
.hwys-portal-post-block {
    margin: 0 0 1.25rem;
}
.hwys-portal-post-block--primary {
    padding-bottom: 0.25rem;
}
.hwys-portal-post-block__label {
    margin: 0 0 0.65rem;
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--hwys-ink, #0f172a);
}
.hwys-portal-post-section {
    margin: 0 0 0.85rem;
    border: 1px solid var(--hwys-border, #e2e8f0);
    border-radius: 10px;
    background: #fff;
}
.hwys-portal-post-section__summary {
    cursor: pointer;
    padding: 0.7rem 0.9rem;
    font-weight: 600;
    font-size: 0.92rem;
    list-style: none;
}
.hwys-portal-post-section__summary::-webkit-details-marker {
    display: none;
}
.hwys-portal-post-section__body {
    padding: 0 0.9rem 0.9rem;
    border-top: 1px solid var(--hwys-border, #e2e8f0);
}
.hwys-portal-post-section__body > label:first-child {
    margin-top: 0.65rem;
}
.hwys-portal-post-field-help {
    margin: 0.35rem 0 0.65rem;
    font-size: 0.85rem;
}
.hwys-portal-post-field-help summary {
    cursor: pointer;
    font-weight: 600;
}
.hwys-portal-post-submit-wrap {
    margin: 1.5rem 0 0;
    padding-top: 0.5rem;
}
.hwys-portal-op-form--compose .hwys-portal-photo-section {
    margin-top: 0;
    padding: 0;
    border: none;
    background: transparent;
}
.hwys-portal-ai-panel__about {
    margin-top: 0.5rem;
    font-size: 0.85rem;
}
.hwys-portal-ai-panel__about summary {
    cursor: pointer;
}
.hwys-portal-seo-preview__inner {
    padding-top: 0.25rem;
}
.hwys-portal-serp {
    margin-top: 0.75rem;
    padding: 0.85rem 1rem;
    border-radius: 10px;
    background: #f8fafc;
}
.hwys-portal-serp__url {
    margin: 0;
    font-size: 0.82rem;
    color: #137333;
}
.hwys-portal-serp__title {
    margin: 0.2rem 0 0;
    font-size: 1.15rem;
    color: #1a0dab;
    line-height: 1.35;
}
.hwys-portal-serp__desc {
    margin: 0.25rem 0 0;
    font-size: 0.9rem;
    color: #4d5156;
    line-height: 1.45;
}
.hwys-portal-seo-score {
    margin-top: 1rem;
}
.hwys-portal-seo-score__list {
    margin: 0.5rem 0 0;
    padding: 0;
    list-style: none;
}
.hwys-portal-seo-score__item {
    margin: 0.3rem 0;
    font-size: 0.9rem;
}
.hwys-portal-seo-score__item--ok {
    color: #0f766e;
}
.hwys-portal-seo-score__item--warn {
    color: #b45309;
}
.hwys-portal-ai-panel__advanced {
    margin-top: 0.75rem;
}
.hwys-portal-ai-panel__advanced-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.hwys-portal-photo-section {
    margin-top: 0.5rem;
    padding: 1rem;
    border-radius: 14px;
    border: 1px solid rgba(60, 60, 67, 0.12);
    background: #fafafa;
}

.hwys-portal-photo-section__heading {
    margin: 0 0 0.5rem;
    font-weight: 700;
}

.hwys-portal-photo-section__hint {
    margin: 0.5rem 0 0.75rem;
}

.hwys-portal-photo-section__file-label {
    display: inline-block;
    margin-top: 0.65rem;
    font-weight: 600;
}

.hwys-portal-photo-preview__grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 0.75rem;
}

.hwys-portal-photo-preview__item {
    margin: 0;
    width: 96px;
    text-align: center;
}

.hwys-portal-photo-preview__item img {
    display: block;
    width: 96px;
    height: 72px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid #e2e8f0;
}

.hwys-portal-photo-preview__item figcaption {
    margin-top: 0.25rem;
    font-size: 0.68rem;
    color: #64748b;
    word-break: break-all;
}

.hwys-portal-photo-preview__item--eyecatch img {
    border: 2px solid var(--hwys-accent, #6366f1);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--hwys-accent, #6366f1) 25%, transparent);
}

.hwys-portal-photo-preview__eyecatch {
    display: block;
    margin-top: 0.35rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--hwys-accent, #6366f1);
    cursor: pointer;
}

.hwys-portal-attached-images {
    margin: 0.65rem 0 0;
}

.hwys-portal-attached-images__title {
    margin: 0 0 0.45rem;
    font-size: 0.82rem;
    font-weight: 600;
    color: #64748b;
}

.hwys-portal-attached-images__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.hwys-portal-attached-images__grid--even {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
}

@media (min-width: 520px) {
    .hwys-portal-attached-images__grid--even {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.hwys-portal-attached-images__link {
    display: block;
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid #e2e8f0;
    background: #f8fafc;
}

.hwys-portal-attached-images__item.is-missing {
    display: none;
}

.hwys-portal-attached-images__zoom {
    position: absolute;
    right: 0.35rem;
    bottom: 0.35rem;
    padding: 0.15rem 0.45rem;
    border-radius: 6px;
    background: rgba(15, 23, 42, 0.55);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 700;
    opacity: 0;
    transition: opacity 0.15s;
}

.hwys-portal-attached-images__link:hover .hwys-portal-attached-images__zoom,
.hwys-portal-attached-images__link:focus-visible .hwys-portal-attached-images__zoom {
    opacity: 1;
}

.hwys-portal-attached-images__item img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 0;
    border: none;
}

.hwys-portal-attached-images__name {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.65rem;
    color: #94a3b8;
    word-break: break-all;
}

.hwys-portal-panel--revision-form .hwys-image-upload-guide {
    margin-top: 0;
}

.hwys-admin-inbox-item .hwys-portal-attached-images {
    margin: 0.5rem 0 0.75rem;
}

.hwys-portal-log-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.hwys-portal-log-list li {
    padding: 0.55rem 0;
    border-bottom: 1px solid rgba(60, 60, 67, 0.1);
    font-size: 0.88rem;
    line-height: 1.45;
}

.hwys-portal-log-list time {
    display: block;
    font-size: 0.75rem;
    color: #636366;
}

.hwys-portal-subhead {
    margin: 1.25rem 0 0.5rem;
    font-size: 1rem;
}

.hwys-admin-access-panel {
    margin: 0 0 1rem;
    padding: 1rem 1.15rem;
    border: 1px solid rgba(88, 86, 214, 0.22);
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(88, 86, 214, 0.05), rgba(52, 199, 89, 0.04));
}

.hwys-admin-access-panel__title {
    margin: 0 0 0.35rem;
    font-weight: 800;
    font-size: 1rem;
}

.hwys-admin-access-panel__lead {
    margin: 0 0 0.75rem;
    font-size: 0.88rem;
    line-height: 1.55;
}

.hwys-admin-access-dl {
    margin: 0;
    display: grid;
    gap: 0.55rem;
}

.hwys-admin-access-dl dt {
    font-size: 0.78rem;
    font-weight: 700;
    color: #64748b;
}

.hwys-admin-access-dl dd {
    margin: 0;
}

.hwys-admin-access-code {
    display: block;
    padding: 0.45rem 0.55rem;
    border-radius: 8px;
    background: #fff;
    border: 1px solid rgba(60, 60, 67, 0.12);
    font-size: 0.78rem;
    word-break: break-word;
    overflow-wrap: anywhere;
}

.hwys-admin-access-code--url {
    font-size: 0.72rem;
}

.hwys-admin-access-note {
    margin: 0.65rem 0 0;
    font-size: 0.8rem;
}

/* --- ポータル：ヒアリングフォーム風章カード --- */
body.hwys-page--portal .hwys-form-shell .hwys-chapter {
    margin-bottom: 1.25rem;
    scroll-margin-top: 4.5rem;
}

body.hwys-page--portal .hwys-form-hero.hwys-portal-hero {
    margin-bottom: 1rem;
}

body.hwys-page--portal .hwys-portal-menu-block {
    margin-bottom: 1.35rem;
}

body.hwys-page--portal .hwys-portal-menu-block__title {
    margin: 0 0 0.3rem;
    font-family: var(--hwys-font-display);
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    text-align: center;
}

body.hwys-page--portal .hwys-portal-menu-block__lead {
    margin: 0 0 0.75rem;
    font-size: 0.84rem;
    line-height: 1.55;
    text-align: center;
}

body.hwys-page--portal .hwys-portal-menu-tiles {
    margin-top: 0;
}

body.hwys-page--portal .hwys-portal-menu-grid {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 0;
}

.hwys-portal-menu-primary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
    width: 100%;
}

.hwys-portal-menu-primary > .hwys-portal-menu-card {
    min-height: 4.35rem;
}

.hwys-portal-menu-primary--odd > .hwys-portal-menu-card:last-child {
    grid-column: 1 / -1;
}

.hwys-portal-menu-primary--odd > .hwys-section-tile:last-child {
    grid-column: 1 / -1;
    width: 100%;
    max-width: none;
    justify-self: stretch;
}

.hwys-portal-menu-secondary {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    width: 100%;
    margin-top: 0.15rem;
    padding-top: 0.65rem;
    border-top: 1px solid rgba(60, 60, 67, 0.1);
}

.hwys-portal-menu-secondary__label {
    margin: 0 0 0.15rem;
    font-size: 0.72rem;
    font-weight: 700;
    color: #94a3b8;
    letter-spacing: 0.04em;
}

.hwys-portal-menu-compact {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    width: 100%;
    box-sizing: border-box;
    padding: 0.6rem 0.75rem;
    min-height: 2.75rem;
    border: 1px solid rgba(60, 60, 67, 0.12);
    border-radius: 12px;
    background: #fff;
    text-decoration: none;
    color: inherit;
    box-sizing: border-box;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

a.hwys-portal-menu-compact:hover {
    border-color: rgba(88, 86, 214, 0.35);
    box-shadow: 0 0 0 2px rgba(88, 86, 214, 0.1);
}

.hwys-portal-menu-compact--disabled {
    opacity: 0.58;
    cursor: not-allowed;
}

.hwys-portal-menu-compact--warn {
    border-color: rgba(255, 149, 0, 0.35);
    background: #fffaf2;
}

.hwys-portal-menu-compact__icon {
    flex: 0 0 1.75rem;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 7px;
}

.hwys-portal-menu-compact__icon.hwys-ops-key-icon::after {
    width: 0.92rem;
    height: 0.92rem;
}

.hwys-portal-menu-compact__glyph {
    flex: 0 0 1.75rem;
    width: 1.75rem;
    height: 1.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #f1f5f9;
    font-size: 0.78rem;
    font-weight: 700;
    color: #475569;
}

.hwys-portal-menu-compact__body {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.5rem;
}

.hwys-portal-menu-compact__title {
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.35;
}

.hwys-portal-menu-compact__badge {
    font-size: 0.72rem;
    font-weight: 600;
    color: #64748b;
}

.hwys-portal-menu-compact__chev {
    flex: 0 0 auto;
    font-size: 1.1rem;
    line-height: 1;
    color: #94a3b8;
}

body.hwys-page--portal .hwys-portal-menu-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
}

body.hwys-page--portal .hwys-portal-menu-cell {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
}

body.hwys-page--portal .hwys-portal-menu-cell--wide {
    grid-column: 1 / -1;
}

.hwys-portal-menu-composite {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 5.5rem;
    border: 1px solid var(--hwys-separator);
    border-radius: var(--hwys-radius-lg);
    background: var(--hwys-bg-elevated);
    box-shadow: var(--hwys-shadow-sm);
    overflow: hidden;
    box-sizing: border-box;
}

.hwys-portal-menu-composite.hwys-section-tile--done {
    border-color: rgba(52, 199, 89, 0.4);
    background: linear-gradient(165deg, #ecfdf5 0%, #fff 55%);
}

.hwys-portal-menu-composite.hwys-section-tile--started {
    border-color: rgba(88, 86, 214, 0.35);
    background: linear-gradient(165deg, #f5f3ff 0%, #fff 55%);
}

.hwys-portal-menu-composite__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 0.35rem;
    flex: 1 1 auto;
    padding: 1rem 0.7rem 0.65rem;
    text-align: center;
    text-decoration: none;
    color: inherit;
}

@media (hover: hover) {
    a.hwys-portal-menu-composite__head:hover {
        text-decoration: none;
    }
}

.hwys-portal-menu-composite__inset {
    border-top: 1px solid rgba(60, 60, 67, 0.1);
    background: rgba(255, 255, 255, 0.72);
    padding: 0.35rem 0.45rem 0.45rem;
}

.hwys-portal-menu-composite__row {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    width: 100%;
    padding: 0.42rem 0.5rem;
    border-radius: 8px;
    text-decoration: none;
    color: inherit;
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.35;
    box-sizing: border-box;
    transition: background var(--hwys-transition);
}

@media (hover: hover) {
    a.hwys-portal-menu-composite__row:hover {
        background: rgba(88, 86, 214, 0.08);
        text-decoration: none;
    }
}

.hwys-portal-menu-composite__row--accent {
    background: rgba(255, 245, 247, 0.95);
}

.hwys-portal-menu-composite__row--disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.hwys-portal-menu-composite__row-glyph {
    flex-shrink: 0;
    font-size: 0.82rem;
}

.hwys-portal-menu-composite__row-title {
    flex: 1 1 auto;
    min-width: 0;
    text-align: left;
}

.hwys-portal-menu-composite__row-badge {
    flex-shrink: 0;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--hwys-muted);
}

.hwys-portal-menu-composite__row--accent .hwys-portal-menu-composite__row-badge {
    color: #c93400;
}

.hwys-portal-page-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0 0 1rem;
    padding: 0.35rem;
    border-radius: 12px;
    background: rgba(248, 250, 252, 0.95);
    border: 1px solid rgba(60, 60, 67, 0.1);
}

.hwys-portal-page-nav__item {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.45rem 0.85rem;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 600;
    text-decoration: none;
    color: #334155;
    background: transparent;
    transition: background var(--hwys-transition), color var(--hwys-transition);
}

a.hwys-portal-page-nav__item:hover {
    background: rgba(88, 86, 214, 0.08);
    text-decoration: none;
}

.hwys-portal-page-nav__item--active {
    background: #fff;
    color: #1c1c1e;
    box-shadow: var(--hwys-shadow-sm);
}

.hwys-portal-page-nav__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    padding: 0.05rem 0.35rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    background: rgba(88, 86, 214, 0.12);
    color: #5856d6;
}

.hwys-home-select-hero__actions {
    margin: 0.65rem 0 0;
}

body.hwys-page--portal .hwys-portal-post-promo {
    margin: 0 0 0.85rem;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: 0.65rem;
}

body.hwys-page--portal .hwys-portal-post-promo .hwys-section-tile {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 0.85rem;
    min-height: auto;
    padding: 0.95rem 1.1rem;
    text-align: left;
}

body.hwys-page--portal .hwys-portal-post-promo .hwys-section-tile__num {
    flex-shrink: 0;
}

body.hwys-page--portal .hwys-portal-post-promo .hwys-section-tile__title {
    flex: 1 1 auto;
    width: auto;
    font-size: 0.92rem;
}

body.hwys-page--portal .hwys-portal-post-promo .hwys-section-tile__pct {
    flex-shrink: 0;
    margin-top: 0;
    padding-top: 0;
    font-size: 0.82rem;
}

.hwys-portal-uirefresh-compact {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid rgba(88, 86, 214, 0.14);
    text-align: left;
    box-sizing: border-box;
}

.hwys-portal-uirefresh-compact__body {
    flex: 1 1 auto;
    min-width: 0;
}

.hwys-portal-uirefresh-compact__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 0.55rem;
}

.hwys-portal-uirefresh-compact__icon {
    flex-shrink: 0;
    width: 1.2rem;
    height: 1.2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.62rem;
    border-radius: 999px;
    background: linear-gradient(135deg, #5856d6, #34c759);
    color: #fff;
    line-height: 1;
}

.hwys-portal-uirefresh-compact__label {
    display: inline;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #5856d6;
}

.hwys-portal-uirefresh-compact__msg {
    margin: 0.12rem 0 0;
    font-size: 0.74rem;
    line-height: 1.45;
    color: #64748b;
}

.hwys-portal-kv-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr));
    gap: 0.5rem;
    width: 100%;
}

.hwys-portal-hero-records .hwys-portal-kv-grid,
.hwys-portal-flow-records .hwys-portal-kv-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 22rem) {
    .hwys-portal-hero-records .hwys-portal-kv-grid,
    .hwys-portal-flow-records .hwys-portal-kv-grid {
        grid-template-columns: 1fr;
    }
}

.hwys-portal-kv-item {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.55rem 0.75rem;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid rgba(60, 60, 67, 0.1);
    box-sizing: border-box;
}

.hwys-portal-kv-item__label {
    font-size: 0.68rem;
    font-weight: 600;
    color: #64748b;
    line-height: 1.35;
}

.hwys-portal-kv-item__value {
    font-size: 0.92rem;
    font-weight: 700;
    color: #1c1c1e;
    line-height: 1.35;
    font-variant-numeric: tabular-nums;
}

.hwys-portal-hero-records {
    width: 100%;
    padding: 0.65rem 0.85rem;
    border-radius: 12px;
    background: rgba(248, 250, 252, 0.95);
    border: 1px solid rgba(60, 60, 67, 0.1);
    box-sizing: border-box;
}

.hwys-portal-hero-records__title {
    margin: 0 0 0.5rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #64748b;
    text-transform: none;
}

body.hwys-page--portal .hwys-portal-hero__status-band {
    width: 100%;
    margin-top: 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    text-align: left;
}

body.hwys-page--portal .hwys-portal-uirefresh-compact .hwys-progress--compact {
    width: 100%;
    margin-top: 0.45rem;
}

.hwys-portal-flow-page__status {
    margin: 0 0 0.85rem;
    font-size: 0.92rem;
}

.hwys-portal-flow-records {
    margin: 1.15rem 0 0;
}

.hwys-portal-flow-actions {
    margin: 1.35rem 0 0;
    padding-top: 1rem;
    border-top: 1px solid rgba(60, 60, 67, 0.1);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.45rem;
}

.hwys-portal-flow-actions__hint {
    margin: 0;
    font-size: 0.84rem;
    line-height: 1.55;
}

body.hwys-page--portal-flow .hwys-wf-steps--flow-page {
    margin-top: 0.25rem;
}

.hwys-progress--compact {
    max-width: none;
    gap: 0.15rem;
    margin-top: 0.25rem;
}

.hwys-progress--compact .hwys-progress__track {
    height: 0.28rem;
}

.hwys-progress--compact .hwys-progress__label {
    font-size: 0.68rem;
}

.hwys-portal-drawer {
    margin-bottom: 1.25rem;
    scroll-margin-top: 4.5rem;
}

.hwys-portal-drawer[hidden] {
    display: none !important;
}

.hwys-portal-drawer--open .hwys-portal-panel {
    animation: hwys-portal-drawer-in 0.28s ease-out;
}

@keyframes hwys-portal-drawer-in {
    from { opacity: 0; transform: translateY(-0.35rem); }
    to { opacity: 1; transform: translateY(0); }
}

.hwys-portal-drawer .hwys-portal-panel {
    margin-top: 0;
}

.hwys-portal-drawer .hwys-portal-panel__head {
    position: relative;
    padding-right: 2rem;
}

.hwys-portal-drawer__close {
    position: absolute;
    top: 0;
    right: 0;
    width: 1.75rem;
    height: 1.75rem;
    border: none;
    background: transparent;
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
    opacity: 0.55;
}

@media (hover: hover) {
    .hwys-portal-drawer__close:hover {
        opacity: 1;
    }
}

body.hwys-page--portal .hwys-chapter__body .hwys-wf-steps,
body.hwys-page--portal .hwys-chapter__body .hwys-portal-dl,
body.hwys-page--portal .hwys-chapter__body .hwys-portal-log-list,
body.hwys-page--portal .hwys-chapter__body .hwys-portal-thought-pattern {
    padding-bottom: 1.25rem;
}

body.hwys-page--portal .hwys-chapter__body .hwys-portal-subhead:first-of-type {
    margin-top: 0.35rem;
}

.hwys-section-tile--disabled {
    opacity: 0.58;
    cursor: not-allowed;
    box-shadow: none;
    transform: none;
}

@media (hover: hover) {
    .hwys-section-tile--disabled:hover {
        box-shadow: none;
        transform: none;
    }
}

/* --- 運営：未対応ランプ --- */
.hwys-index-alert-lamp {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    margin-left: 0.3rem;
    vertical-align: middle;
}

.hwys-index-alert-lamp__dot {
    width: 0.52rem;
    height: 0.52rem;
    border-radius: 999px;
    background: #ff3b30;
    box-shadow: 0 0 0 2px rgba(255, 59, 48, 0.22);
    animation: hwys-lamp-pulse 2s ease-in-out infinite;
}

.hwys-index-alert-lamp__count {
    font-size: 0.65rem;
    font-weight: 800;
    color: #ff3b30;
    font-variant-numeric: tabular-nums;
}

@keyframes hwys-lamp-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.55; transform: scale(0.9); }
}

tr.hwys-index-row--alert .col-name .hwys-index-name {
    font-weight: 700;
}

.hwys-admin-inbox-panel {
    margin: 0 0 1rem;
    padding: 1rem 1.1rem;
    border: 1px solid rgba(255, 59, 48, 0.22);
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(255, 59, 48, 0.04), rgba(255, 149, 0, 0.03));
}

.hwys-admin-inbox-panel__title {
    margin: 0 0 0.65rem;
    font-size: 1rem;
    font-weight: 800;
}

.hwys-admin-inbox-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.75rem;
}

.hwys-admin-inbox-item {
    padding: 0.75rem 0.85rem;
    border-radius: 10px;
    background: #fff;
    border: 1px solid rgba(60, 60, 67, 0.12);
}

.hwys-admin-inbox-item__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.65rem;
    margin-bottom: 0.35rem;
}

.hwys-admin-inbox-item__title {
    margin: 0 0 0.35rem;
}

.hwys-admin-inbox-item__body {
    margin: 0 0 0.35rem;
    font-size: 0.88rem;
    line-height: 1.55;
}

.hwys-admin-inbox-item__ack {
    margin: 0.45rem 0 0;
}

.hwys-btn--sm {
    min-height: 2rem;
    height: 2rem;
    padding: 0 0.75rem;
    font-size: 0.82rem;
    line-height: 1;
}

/* --- 運営ハブ --- */
.hwys-admin-hub {
    margin: 0 0 1.25rem;
    padding: 1.1rem 1.15rem;
    border: 1px solid rgba(88, 86, 214, 0.18);
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(88, 86, 214, 0.04), rgba(52, 199, 89, 0.03));
}

.hwys-admin-hub__title {
    margin: 0 0 0.65rem;
    font-size: 1.15rem;
    font-weight: 800;
}

.hwys-admin-hub__status-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    margin-bottom: 0.85rem;
}

.hwys-admin-hub__alert {
    font-size: 0.82rem;
    font-weight: 700;
    color: #ff3b30;
}

.hwys-admin-hub__grid {
    display: grid;
    gap: 0.85rem;
    margin-top: 0.85rem;
}

@media (min-width: 900px) {
    .hwys-admin-hub__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.hwys-admin-hub__card {
    padding: 0.85rem 0.95rem;
    border-radius: 10px;
    background: #fff;
    border: 1px solid rgba(60, 60, 67, 0.1);
}

.hwys-admin-hub__card-title {
    margin: 0 0 0.55rem;
    font-size: 0.92rem;
    font-weight: 700;
}

.hwys-admin-hub__dl {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.35rem 0.75rem;
    margin: 0;
    font-size: 0.88rem;
}

.hwys-admin-hub__dl dt {
    font-weight: 600;
    color: #64748b;
}

.hwys-admin-hub__dl dd {
    margin: 0;
}

.hwys-admin-hub__links {
    margin: 0.65rem 0 0;
}

.hwys-admin-hub__ops-list,
.hwys-admin-hub__audit-list {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 14rem;
    overflow-y: auto;
}

.hwys-admin-hub__ops-item {
    padding: 0.55rem 0;
    border-bottom: 1px solid rgba(60, 60, 67, 0.08);
    font-size: 0.86rem;
}

.hwys-admin-hub__ops-item--submitted {
    background: rgba(255, 59, 48, 0.04);
    margin: 0 -0.5rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    border-radius: 6px;
}

.hwys-admin-hub__ops-title {
    margin: 0.25rem 0 0;
}

.hwys-admin-hub__ops-body {
    margin: 0.2rem 0 0;
    font-size: 0.82rem;
    color: #64748b;
}

.hwys-admin-hub__audit-list li {
    padding: 0.35rem 0;
    font-size: 0.84rem;
    border-bottom: 1px solid rgba(60, 60, 67, 0.06);
}

.hwys-admin-pc-sync-panel {
    margin: 0.75rem 0 0;
    padding: 0.85rem 0.95rem;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.85);
    border: 1px solid rgba(88, 86, 214, 0.2);
}

.hwys-admin-pc-sync-panel__title {
    margin: 0 0 0.35rem;
    font-size: 0.95rem;
    font-weight: 800;
}

.hwys-admin-pc-sync-panel__lead {
    margin: 0 0 0.65rem;
    font-size: 0.84rem;
    line-height: 1.55;
}

.hwys-admin-pc-sync-panel__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem;
}

.hwys-admin-pc-sync-panel__status {
    font-size: 0.82rem;
    line-height: 1.45;
}

.hwys-admin-pc-sync-panel__help {
    margin-top: 0.65rem;
    font-size: 0.8rem;
}

.hwys-admin-pc-sync-panel__help code {
    display: block;
    margin-top: 0.35rem;
    padding: 0.35rem 0.5rem;
    border-radius: 6px;
    background: #f2f2f7;
    font-size: 0.78rem;
    word-break: break-all;
}

.hwys-admin-hub .hwys-admin-inbox-panel {
    margin: 1rem 0 0;
    grid-column: 1 / -1;
}

/* ポータル AI 改稿パネル */
.hwys-portal-ai-panel {
    margin: 1.25rem 0;
    padding: 1rem 1.1rem;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #f9fafb;
}

.hwys-portal-ai-panel__title {
    margin: 0 0 0.35rem;
    font-size: 1rem;
}

.hwys-portal-ai-panel__lead {
    margin: 0 0 0.75rem;
    font-size: 0.875rem;
}

.hwys-portal-ai-panel__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.hwys-portal-ai-panel__hint {
    margin: 0.65rem 0 0;
    font-size: 0.82rem;
    min-height: 1.2em;
}

.hwys-admin-inbox-revised {
    width: 100%;
    min-height: 10rem;
    margin: 0.35rem 0 0.75rem;
    font: inherit;
    line-height: 1.6;
}

.hwys-admin-inbox-publish-form {
    margin-top: 0.75rem;
}

.hwys-admin-inbox-item__orig {
    margin: 0.5rem 0;
    font-size: 0.9rem;
}

.hwys-admin-inbox-item__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.hwys-admin-inbox-ai {
    margin: 0.5rem 0;
}

.hwys-admin-inbox-panel__sub {
    margin: 1rem 0 0.5rem;
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--hwys-text, #1a1a1a);
}

.hwys-admin-inbox-reply {
    width: 100%;
    min-height: 7rem;
    margin: 0.35rem 0 0.5rem;
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--hwys-border, #e6e8ec);
    border-radius: 8px;
    font: inherit;
    line-height: 1.55;
    resize: vertical;
}

.hwys-admin-inbox-item__reply {
    margin: 0.65rem 0;
    padding: 0.65rem 0.75rem;
    border-left: 3px solid rgba(52, 199, 89, 0.55);
    background: rgba(52, 199, 89, 0.06);
    border-radius: 0 8px 8px 0;
}

.hwys-admin-inbox-item__reply-lbl {
    display: block;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--hwys-muted, #6b7280);
    margin-bottom: 0.35rem;
}

.hwys-admin-inbox-item__ack-hint {
    margin-left: 0.5rem;
    font-size: 0.78rem;
}

.hwys-admin-inbox-item__ack--inline {
    margin-top: 0.35rem;
}

.hwys-index-inbox-badges {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem;
    margin-left: 0.35rem;
    vertical-align: middle;
}

.hwys-index-inbox-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.08rem 0.42rem;
    border-radius: 999px;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    font-variant-numeric: tabular-nums;
    line-height: 1.35;
    white-space: nowrap;
}

.hwys-index-inbox-badge--post {
    color: #0a5;
    background: rgba(10, 132, 255, 0.1);
    border: 1px solid rgba(10, 132, 255, 0.22);
}

.hwys-index-inbox-badge--revision {
    color: #c93400;
    background: rgba(255, 59, 48, 0.08);
    border: 1px solid rgba(255, 59, 48, 0.2);
}

.hwys-index-inbox-badge--meeting {
    color: #a35b00;
    background: rgba(255, 149, 0, 0.1);
    border: 1px solid rgba(255, 149, 0, 0.25);
}

.hwys-index-chip--portal-inbox {
    color: #c93400;
    background: rgba(255, 59, 48, 0.08);
    border-color: rgba(255, 59, 48, 0.18);
}

.hwys-index-ops__inbox {
    font-size: 0.82rem;
    font-weight: 700;
}

.hwys-portal-op-threads {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.75rem;
}

.hwys-portal-op-thread {
    padding: 0.85rem 0.95rem;
    border: 1px solid var(--hwys-border, #e6e8ec);
    border-radius: 12px;
    background: #fff;
}

.hwys-portal-op-thread--action {
    border-color: rgba(255, 149, 0, 0.35);
    box-shadow: 0 0 0 1px rgba(255, 149, 0, 0.08);
}

.hwys-portal-op-thread__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.65rem;
    margin-bottom: 0.35rem;
}

.hwys-portal-op-thread__kind {
    font-size: 0.78rem;
    font-weight: 800;
    color: var(--hwys-muted, #6b7280);
}

.hwys-portal-op-thread__time {
    font-size: 0.78rem;
    color: var(--hwys-muted, #6b7280);
}

.hwys-portal-op-thread__title {
    margin: 0 0 0.45rem;
    font-size: 0.95rem;
}

.hwys-portal-op-thread__body {
    margin: 0.35rem 0;
    font-size: 0.88rem;
}

.hwys-portal-op-thread__body summary {
    cursor: pointer;
    color: var(--hwys-link, #0066cc);
    font-weight: 600;
}

.hwys-portal-op-thread__reply {
    margin: 0.65rem 0 0;
    padding: 0.7rem 0.8rem;
    border-left: 3px solid rgba(10, 132, 255, 0.45);
    background: rgba(10, 132, 255, 0.05);
    border-radius: 0 8px 8px 0;
}

.hwys-portal-op-thread__reply-lbl {
    display: block;
    font-size: 0.78rem;
    font-weight: 700;
    margin-bottom: 0.35rem;
}

.hwys-portal-op-thread__wait {
    margin: 0.35rem 0 0;
    font-size: 0.85rem;
}

.hwys-portal-op-thread__confirm {
    margin-top: 0.65rem;
}

.hwys-admin-gemini-panel__note {
    font-size: 0.82rem;
    line-height: 1.55;
    margin: 0.5rem 0 0;
}

.hwys-admin-gemini-panel__cancel {
    margin-top: 0.65rem;
    font-size: 0.85rem;
}

.hwys-admin-gemini-panel__cancel-list {
    margin: 0.5rem 0 0 1.1rem;
    line-height: 1.55;
}

/* --- 契約・解約 --- */
.hwys-portal-legal-row {
    margin: 1.5rem 0 1.35rem;
    padding-top: 1rem;
    border-top: 1px solid var(--hwys-border, #e6e8ec);
}

.hwys-portal-legal-row .hwys-portal-menu-block__title {
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--hwys-muted, #6b7280);
}

.hwys-portal-legal-tile .hwys-section-tile__title {
    font-size: 0.88rem;
}

.hwys-portal-legal-primary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
    width: 100%;
    margin-bottom: 0.65rem;
}

.hwys-portal-legal-primary .hwys-section-tile {
    min-height: 6rem;
}

.hwys-portal-contract-quick {
    margin-top: 1.35rem;
    padding-top: 1.2rem;
    border-top: 1px solid rgba(148, 163, 184, 0.2);
}

.hwys-portal-menu-block--deployed .hwys-portal-contract-quick {
    margin-top: 1.15rem;
}

.hwys-portal-contract-quick__title {
    margin: 0 0 0.75rem;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #64748b;
    text-align: center;
}

.hwys-portal-contract-quick__tiles {
    margin-bottom: 0;
}

/* --- ポータル統合ハブ（メニュー・契約・HP） --- */
.hwys-portal-hub {
    margin-bottom: 1.35rem;
    padding: 1.2rem 1rem 1.05rem;
    border-radius: 20px;
    border: 1px solid rgba(88, 86, 214, 0.14);
    background: linear-gradient(165deg, rgba(255, 255, 255, 0.99) 0%, rgba(248, 250, 252, 0.96) 48%, rgba(245, 243, 255, 0.35) 100%);
    box-shadow: 0 6px 28px rgba(88, 86, 214, 0.07);
}

.hwys-portal-hub__head {
    text-align: center;
    margin-bottom: 0.35rem;
}

.hwys-portal-hub__title {
    margin: 0 0 0.35rem;
    font-family: var(--hwys-font-display);
    font-size: 1.12rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #1e293b;
}

.hwys-portal-hub__lead {
    margin: 0;
    font-size: 0.84rem;
    line-height: 1.55;
}

.hwys-portal-hub__zone {
    padding: 0.95rem 0 0;
    margin-top: 0.85rem;
    border-top: 1px solid rgba(148, 163, 184, 0.2);
}

.hwys-portal-hub__zone:first-of-type {
    margin-top: 0.65rem;
    padding-top: 0;
    border-top: none;
}

.hwys-portal-hub__zone-head {
    text-align: center;
    margin-bottom: 0.65rem;
}

.hwys-portal-hub__zone-label {
    margin: 0;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    color: #4338ca;
}

.hwys-portal-hub__zone-hint {
    margin: 0.25rem 0 0;
    font-size: 0.76rem;
    line-height: 1.45;
}

.hwys-portal-hub__zone-body .hwys-portal-menu-grid {
    gap: 0;
}

.hwys-portal-hub .hwys-portal-menu-secondary {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

.hwys-portal-hub .hwys-portal-menu-secondary__label {
    display: none;
}

.hwys-portal-hp-hub--in-hub {
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.hwys-portal-hp-hub--in-hub .hwys-portal-hp-hub__title--in-hub {
    display: none;
}

.hwys-portal-hp-hub--in-hub .hwys-portal-hp-hub__lead--compact {
    margin: 0 0 0.55rem;
    text-align: center;
}

.hwys-portal-hp-hub__tiles.hwys-portal-menu-primary {
    margin-top: 0;
}

.hwys-portal-legal-row--notices {
    margin-top: 0.25rem;
    margin-bottom: 1.35rem;
}

.hwys-page--portal-log .hwys-portal-panel--log-page {
    margin-top: 0.5rem;
}

@media (max-width: 359px) {
    .hwys-portal-menu-primary,
    .hwys-portal-legal-primary {
        gap: 0.5rem;
    }

    .hwys-portal-menu-primary > .hwys-section-tile,
    .hwys-portal-legal-primary .hwys-section-tile {
        min-height: 5.5rem;
        padding: 0.85rem 0.5rem 0.8rem;
    }
}

.hwys-portal-legal-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
}

@media (max-width: 560px) {
    .hwys-portal-legal-grid {
        grid-template-columns: 1fr;
    }
}

.hwys-section-tile--warn {
    border-color: rgba(255, 149, 0, 0.35);
    background: linear-gradient(180deg, #fffaf2 0%, #fff 100%);
}

.hwys-section-tile--warn .hwys-section-tile__pct {
    color: #c93400;
}

.hwys-section-tile--cancel {
    border-color: rgba(255, 59, 48, 0.35);
    background: linear-gradient(180deg, #fff5f4 0%, #fff 100%);
}

.hwys-section-tile--cancel .hwys-section-tile__pct {
    color: #ff3b30;
    font-weight: 800;
}

.hwys-cancel-alert {
    margin: 0.75rem 0 1rem;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    border: 1px solid rgba(255, 59, 48, 0.35);
    background: #fff5f4;
    color: #8b1a12;
}

.hwys-cancel-alert__title {
    margin: 0 0 0.25rem;
    font-weight: 800;
    color: #ff3b30;
}

.hwys-cancel-alert__body {
    margin: 0;
    font-weight: 700;
}

.hwys-cancel-alert--inline {
    display: block;
}

.hwys-cancel-alert__link {
    margin: 0.35rem 0 0;
    font-size: 0.88rem;
}

.hwys-cancel-status {
    margin: 0 0 1rem;
}

.hwys-cancel-status__dl {
    margin: 0.75rem 0;
}

.hwys-cancel-status__reason {
    margin: 0.85rem 0;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    border: 1px solid var(--hwys-border, #e6e8ec);
    background: #fff;
}

.hwys-cancel-status__reason-body {
    margin: 0.35rem 0 0;
    line-height: 1.65;
    white-space: pre-wrap;
}

.hwys-admin-cancel-panel__revoke {
    margin-top: 0.75rem;
}

.hwys-cancel-rules-box {
    margin: 1rem 0;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    border: 1px solid var(--hwys-border, #e6e8ec);
    background: #fafbfc;
}

.hwys-cancel-rules {
    margin: 0.5rem 0 0;
    padding-left: 1.1rem;
    line-height: 1.65;
}

.hwys-cancel-form textarea {
    width: 100%;
    min-height: 7rem;
    margin-bottom: 0.85rem;
}

.hwys-cancel-form__hint {
    margin: 0.2rem 0 0.45rem;
    font-size: 0.84rem;
}

.hwys-cancel-form__actions {
    margin-top: 1rem;
}

.hwys-btn--danger {
    background: #ff3b30;
    color: #fff;
    border: 1px solid #e0352b;
}

@media (hover: hover) {
    .hwys-btn--danger:hover {
        background: #e0352b;
    }
}

.hwys-admin-cancel-panel {
    margin: 0 0 1rem;
    padding: 0.9rem 1rem;
    border-radius: 12px;
    border: 1px solid rgba(255, 59, 48, 0.4);
    background: #fff5f4;
}

.hwys-admin-cancel-panel__title {
    margin: 0 0 0.35rem;
    color: #ff3b30;
    font-size: 1rem;
}

.hwys-admin-cancel-panel__limit {
    margin: 0 0 0.65rem;
    font-weight: 800;
    color: #8b1a12;
}

.hwys-admin-cancel-panel__reason {
    margin: 0.65rem 0 0;
    padding-top: 0.65rem;
    border-top: 1px dashed rgba(255, 59, 48, 0.25);
    line-height: 1.6;
}

.hwys-index-alert-lamp--cancel .hwys-index-alert-lamp__dot {
    background: #ff3b30;
}

.hwys-index-alert-lamp--cancel .hwys-index-alert-lamp__count {
    color: #ff3b30;
}

.hwys-contract-doc-box {
    margin: 1rem 0;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    border: 1px solid var(--hwys-border, #e6e8ec);
    background: #fff;
}

/* --- 規約変更同意 --- */
.hwys-consent-alert {
    margin: 0.75rem 0 1rem;
    padding: 0.85rem 1rem;
    border-radius: 12px;
}

.hwys-consent-alert--action {
    border: 1px solid rgba(255, 149, 0, 0.45);
    background: linear-gradient(180deg, #fffaf2 0%, #fff 100%);
    color: #7c2d12;
}

.hwys-consent-alert--ok {
    border: 1px solid rgba(52, 199, 89, 0.35);
    background: #f0fdf4;
    color: #14532d;
}

.hwys-consent-alert__title {
    margin: 0 0 0.35rem;
    font-weight: 800;
}

.hwys-consent-alert--action .hwys-consent-alert__title {
    color: #c93400;
}

.hwys-consent-alert__body,
.hwys-consent-alert__note {
    margin: 0.35rem 0 0;
    line-height: 1.55;
}

.hwys-consent-alert__actions {
    margin: 0.75rem 0 0;
}

.hwys-consent-form-box {
    margin: 1rem 0;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    border: 1px solid #e2e8f0;
    background: #fafbfc;
}

.hwys-admin-consent-panel {
    margin: 0 0 1rem;
    padding: 0.9rem 1rem;
    border-radius: 12px;
    border: 1px solid rgba(255, 149, 0, 0.4);
    background: #fffaf2;
}

.hwys-admin-consent-panel__title {
    margin: 0 0 0.35rem;
    color: #c93400;
    font-size: 1rem;
}

.hwys-admin-consent-publish {
    margin: 0.75rem 0 1.25rem;
}

/* --- ポータル：お支払い --- */
.hwys-portal-payment-row {
    margin-bottom: 1.35rem;
}

.hwys-portal-payment-tile {
    max-width: 420px;
    margin: 0 auto;
}

/* --- 運営：契約書管理 --- */
.hwys-admin-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0 0 1rem;
}

.hwys-admin-tabs__link {
    display: inline-flex;
    align-items: center;
    padding: 0.45rem 0.85rem;
    border: 1px solid var(--hwys-border, #e6e8ec);
    border-radius: 999px;
    background: #fff;
    color: inherit;
    text-decoration: none;
    font-size: 0.92rem;
}

.hwys-admin-tabs__link--active {
    border-color: #0f766e;
    background: #ecfdf5;
    font-weight: 600;
}

.hwys-admin-contract-page,
.hwys-admin-notice-page,
.hwys-admin-legal-page {
    margin-bottom: 2rem;
    padding: 1rem;
    border: 1px solid var(--hwys-border, #e6e8ec);
    border-radius: 12px;
    background: #fff;
}

.hwys-admin-contract-form textarea,
.hwys-admin-notice-page textarea,
.hwys-admin-legal-form textarea {
    width: 100%;
    min-height: 12rem;
    font-family: inherit;
    line-height: 1.55;
}

.hwys-admin-contract-form__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.hwys-admin-contract-notify {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px dashed var(--hwys-border, #e6e8ec);
}

.hwys-admin-contract-preview {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px dashed var(--hwys-border, #e6e8ec);
}

.hwys-admin-contract-preview__markers {
    margin: 0.35rem 0 0.75rem;
    padding-left: 1.1rem;
    font-size: 0.92rem;
}

.hwys-contract-doc-box--admin-preview {
    max-height: min(70vh, 36rem);
    overflow: auto;
    margin-top: 0.5rem;
}

.hwys-admin-contract-preview__parties-note {
    margin: 0.75rem 0 0;
    font-size: 0.88rem;
}

.hwys-admin-contract-preflight {
    margin: 0.75rem 0 1rem;
    padding: 0.65rem 0.85rem;
    border-radius: 10px;
    background: #f8fafc;
    border: 1px solid var(--hwys-border, #e6e8ec);
}

.hwys-contract-amend-mark {
    background: #fef9c3;
    padding: 0 0.12em;
    border-radius: 2px;
}

/* レガシー button[type=submit] より後ろ — 運営フォームのアクセントボタン */
body.hwys-page--ops .hwys-admin-contract-page button.hwys-btn.hwys-btn--accent,
body.hwys-page--ops .hwys-admin-notice-page button.hwys-btn.hwys-btn--accent,
body.hwys-page--ops .hwys-admin-contract-page button.hwys-btn.hwys-btn--primary,
body.hwys-page--ops .hwys-admin-notice-page button.hwys-btn.hwys-btn--primary {
    background: var(--hwys-gradient-joy);
    color: #fff;
    border-color: transparent;
    box-shadow: var(--hwys-shadow-md);
}

body.hwys-page--ops .hwys-admin-contract-page button.hwys-btn.hwys-btn--primary,
body.hwys-page--ops .hwys-admin-notice-page button.hwys-btn.hwys-btn--primary {
    background: var(--hwys-gradient-brand);
}

body.hwys-page--ops .hwys-admin-contract-page button.hwys-btn.hwys-btn--ghost,
body.hwys-page--ops .hwys-admin-notice-page button.hwys-btn.hwys-btn--ghost {
    background: transparent;
    color: var(--hwys-text);
    border-color: var(--hwys-border);
    box-shadow: none;
}

/* --- 契約・お知らせログ --- */
.hwys-admin-log-panel {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--hwys-border, #e6e8ec);
}

.hwys-admin-log-panel__title {
    margin: 0 0 0.35rem;
    font-size: 1.15rem;
}

.hwys-admin-log-panel__lead {
    margin: 0 0 1rem;
}

.hwys-admin-log-panel__table {
    margin-bottom: 1rem;
}

.hwys-admin-log-panel__foot {
    margin: 0.5rem 0 0;
    font-size: 0.85rem;
}

.hwys-admin-log-table {
    width: 100%;
    font-size: 0.875rem;
}

.hwys-admin-log-table__time {
    white-space: nowrap;
}

.hwys-admin-notice-log-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.hwys-admin-notice-log-item {
    border: 1px solid var(--hwys-border, #e6e8ec);
    border-radius: 10px;
    background: #fafafa;
}

.hwys-admin-notice-log-item__summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    padding: 0.65rem 0.85rem;
    cursor: pointer;
    list-style: none;
}

.hwys-admin-notice-log-item__summary::-webkit-details-marker {
    display: none;
}

.hwys-admin-notice-log-item__time {
    font-size: 0.82rem;
    color: var(--hwys-muted, #636366);
}

.hwys-admin-notice-log-item__title {
    font-weight: 600;
    flex: 1 1 12rem;
}

.hwys-admin-notice-log-item__reads {
    font-size: 0.82rem;
    color: var(--hwys-muted, #636366);
}

.hwys-admin-notice-log-item__body {
    padding: 0 0.85rem 0.85rem;
    border-top: 1px dashed var(--hwys-border, #e6e8ec);
}

.hwys-admin-log-table--compact td,
.hwys-admin-log-table--compact th {
    padding: 0.4rem 0.55rem;
}

.hwys-contract-doc-body {
    margin: 0.75rem 0;
    padding: 0.85rem 1rem;
    border-radius: 8px;
    background: #f8fafc;
    line-height: 1.65;
    font-size: 0.92rem;
    max-height: 28rem;
    overflow-y: auto;
}

.hwys-contract-doc-body__title {
    margin-top: 0.5rem;
}

.hwys-contract-parties {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(88, 86, 214, 0.22);
}

.hwys-contract-parties__title {
    margin: 0 0 0.4rem;
    font-size: 0.95rem;
    font-weight: 700;
    color: #1c1c1e;
}

.hwys-contract-parties__lead {
    margin: 0 0 0.5rem;
    font-size: 0.82rem;
}

.hwys-contract-parties__date {
    margin: 0 0 0.75rem;
    font-size: 0.84rem;
}

.hwys-contract-parties__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.85rem;
}

@media (min-width: 640px) {
    .hwys-contract-parties__grid {
        grid-template-columns: 1fr 1fr;
    }
}

.hwys-contract-parties__party {
    padding: 0.75rem 0.85rem;
    border-radius: 10px;
    background: #fff;
    border: 1px solid rgba(60, 60, 67, 0.12);
}

.hwys-contract-parties__role {
    margin: 0 0 0.45rem;
    font-size: 0.88rem;
    font-weight: 700;
    color: #5856d6;
}

.hwys-contract-parties__dl {
    margin: 0;
    font-size: 0.84rem;
    line-height: 1.5;
}

.hwys-contract-parties__dl dt {
    margin: 0.35rem 0 0.1rem;
    font-weight: 600;
    color: #64748b;
    font-size: 0.78rem;
}

.hwys-contract-parties__dl dd {
    margin: 0;
    color: #1c1c1e;
}

.hwys-contract-parties__missing {
    color: #94a3b8;
    font-style: italic;
}

.hwys-contract-parties__consent {
    margin-top: 0.85rem;
    padding: 0.75rem 0.85rem;
    border-radius: 10px;
    border: 1px solid rgba(60, 60, 67, 0.12);
    background: #f8fafc;
}

.hwys-contract-parties__consent--explicit,
.hwys-contract-parties__consent--auto,
.hwys-contract-parties__consent--payment {
    border-color: rgba(52, 199, 89, 0.35);
    background: linear-gradient(180deg, #f0fdf4 0%, #fff 100%);
}

.hwys-contract-parties__consent--awaiting {
    border-color: rgba(255, 149, 0, 0.35);
    background: linear-gradient(180deg, #fffaf2 0%, #fff 100%);
}

.hwys-contract-parties__consent-title {
    margin: 0 0 0.35rem;
    font-size: 0.88rem;
    font-weight: 700;
}

.hwys-contract-parties__consent-detail,
.hwys-contract-parties__consent-at {
    margin: 0.25rem 0 0;
    font-size: 0.84rem;
    line-height: 1.55;
}

.hwys-admin-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88rem;
    margin-top: 0.5rem;
}

.hwys-admin-table th,
.hwys-admin-table td {
    border: 1px solid #e2e8f0;
    padding: 0.4rem 0.55rem;
    text-align: left;
}

/* --- ポータル：お知らせ --- */
.hwys-portal-notice-alert {
    margin: 0.75rem 0 1rem;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    border: 1px solid rgba(88, 86, 214, 0.35);
    background: linear-gradient(180deg, #f5f4ff 0%, #fff 100%);
}

.hwys-portal-notice-alert__title {
    margin: 0 0 0.35rem;
    font-weight: 800;
    color: #5856d6;
}

.hwys-portal-notice-alert__body {
    margin: 0 0 0.65rem;
    line-height: 1.6;
    font-size: 0.92rem;
}

.hwys-portal-notice-alert__form {
    margin: 0;
}

.hwys-portal-notice-alert__actions {
    margin: 0;
}

.hwys-portal-notice-alert--chat {
    border-color: rgba(255, 45, 85, 0.35);
    background: linear-gradient(180deg, #fff5f7 0%, #fff 100%);
}

.hwys-portal-notice-alert--chat .hwys-portal-notice-alert__title {
    color: #c93400;
}

/* --- ポータル：ご案内・通知（統合ハブ） --- */
.hwys-portal-notices-hub {
    width: 100%;
    margin: 0.85rem 0 0;
    padding: 0.75rem 0.85rem;
    border-radius: 12px;
    background: rgba(248, 250, 252, 0.95);
    border: 1px solid rgba(88, 86, 214, 0.18);
    box-sizing: border-box;
    text-align: left;
}

.hwys-portal-notices-hub__title {
    margin: 0 0 0.55rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #64748b;
}

.hwys-portal-notices-hub__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.hwys-portal-notices-hub__item {
    margin: 0;
    padding: 0;
}

.hwys-portal-notices-hub__card {
    padding: 0.65rem 0.75rem;
    border-radius: 10px;
    background: #fff;
    border: 1px solid rgba(60, 60, 67, 0.1);
}

.hwys-portal-notices-hub__item--contract .hwys-portal-notices-hub__card,
.hwys-portal-notices-hub__item--cancel .hwys-portal-notices-hub__card {
    border-color: rgba(255, 149, 0, 0.35);
    background: linear-gradient(180deg, #fffaf2 0%, #fff 100%);
}

.hwys-portal-notices-hub__item--chat .hwys-portal-notices-hub__card {
    border-color: rgba(255, 45, 85, 0.28);
    background: linear-gradient(180deg, #fff5f7 0%, #fff 100%);
}

.hwys-portal-notices-hub__card-title {
    margin: 0 0 0.35rem;
    font-size: 0.88rem;
    font-weight: 700;
    color: #1c1c1e;
    line-height: 1.45;
}

.hwys-portal-notices-hub__glyph {
    margin-right: 0.15rem;
}

.hwys-portal-notices-hub__card-body {
    margin: 0 0 0.55rem;
    font-size: 0.84rem;
    line-height: 1.55;
    color: #334155;
}

.hwys-portal-notices-hub__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    align-items: center;
}

.hwys-portal-notices-hub__form {
    margin: 0;
}

.hwys-portal-notices-hub__item--legal_tokusho .hwys-portal-notices-hub__card,
.hwys-portal-notices-hub__item--legal_privacy .hwys-portal-notices-hub__card {
    border-color: rgba(88, 86, 214, 0.35);
    background: linear-gradient(180deg, #f8f7ff 0%, #fff 100%);
}

.hwys-portal-notices-carousel {
    margin-top: 0.5rem;
}

.hwys-portal-notices-carousel__list {
    margin: 0;
}

.hwys-portal-notices-carousel__nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    margin-top: 0.45rem;
}

.hwys-portal-notices-carousel__btn {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 999px;
    border: 1px solid rgba(88, 86, 214, 0.35);
    background: #fff;
    color: #5856d6;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
}

.hwys-portal-notices-carousel__btn:hover {
    background: rgba(88, 86, 214, 0.08);
}

.hwys-portal-notices-carousel__pos {
    font-size: 0.78rem;
    color: #64748b;
    min-width: 3.5rem;
    text-align: center;
}

.hwys-consent-form-box--legal {
    margin-top: 1.25rem;
}

.hwys-admin-legal-notify {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(60, 60, 67, 0.12);
}

.hwys-consent-policy-box {
    margin: 0.85rem 0 0;
    padding: 0.75rem 0.85rem;
    border-radius: 10px;
    background: rgba(248, 250, 252, 0.95);
    border: 1px solid rgba(88, 86, 214, 0.2);
}

.hwys-consent-policy-box__title {
    margin: 0 0 0.45rem;
    font-size: 0.88rem;
    font-weight: 700;
    color: #1c1c1e;
}

.hwys-consent-policy-box__list {
    margin: 0;
    padding-left: 1.15rem;
    font-size: 0.84rem;
    line-height: 1.55;
    color: #334155;
}

.hwys-consent-policy-box__list li + li {
    margin-top: 0.35rem;
}

.hwys-consent-objection-form {
    margin-top: 1rem;
    padding-top: 0.85rem;
    border-top: 1px dashed rgba(60, 60, 67, 0.18);
}

/* 改定サマリ — 運営入力 */
.hwys-amendment-admin {
    margin: 1rem 0;
    padding: 0.85rem 1rem;
    border-radius: 10px;
    border: 1px solid var(--hwys-border, #e6e8ec);
    background: #f8fafc;
}

.hwys-amendment-admin__legend {
    font-weight: 700;
    font-size: 0.92rem;
    padding: 0 0.25rem;
}

.hwys-amendment-admin__lead {
    margin: 0.35rem 0 0.75rem;
    font-size: 0.88rem;
}

.hwys-amendment-admin__tiers {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-bottom: 0.85rem;
}

.hwys-amendment-admin__tier {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.88rem;
    line-height: 1.45;
    cursor: pointer;
}

.hwys-amendment-admin__tier input {
    margin-top: 0.2rem;
}

.hwys-amendment-admin__diff-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

@media (max-width: 720px) {
    .hwys-amendment-admin__diff-grid {
        grid-template-columns: 1fr;
    }
}

.hwys-amendment-admin__diff--emphasis {
    border-left: 3px solid #d97706;
    padding-left: 0.65rem;
}

/* 改定サマリ — 顧客ポータル */
.hwys-amendment-customer {
    margin: 0 0 1.25rem;
    padding: 1rem 1.1rem;
    border-radius: 12px;
    border: 1px solid rgba(88, 86, 214, 0.28);
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.98), rgba(255, 255, 255, 0.98));
}

.hwys-amendment-customer--minor {
    border-color: rgba(100, 116, 139, 0.25);
    background: #f8fafc;
}

.hwys-amendment-customer--critical {
    border-color: rgba(217, 119, 6, 0.45);
    background: linear-gradient(180deg, #fffbeb, #fff);
}

.hwys-amendment-customer__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    margin-bottom: 0.65rem;
}

.hwys-amendment-customer__badge {
    display: inline-block;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    background: rgba(88, 86, 214, 0.12);
    color: #4338ca;
}

.hwys-amendment-customer--minor .hwys-amendment-customer__badge {
    background: rgba(100, 116, 139, 0.12);
    color: #475569;
}

.hwys-amendment-customer--critical .hwys-amendment-customer__badge {
    background: rgba(217, 119, 6, 0.15);
    color: #b45309;
}

/* 運営 — 顧客情報（告知メール・連絡先） */
.hwys-client-profile {
    margin: 1.25rem 0 2rem;
    padding: 1.25rem 1.35rem;
    border: 1px solid rgba(60, 60, 67, 0.12);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.92);
}

.hwys-client-profile__lead {
    margin-top: 0.35rem;
}

.hwys-client-profile__summary {
    margin: 1rem 0;
}

.hwys-client-profile__card {
    margin: 1.25rem 0;
    padding: 1rem 1.1rem;
    border-radius: 12px;
    background: rgba(88, 86, 214, 0.04);
    border: 1px solid rgba(88, 86, 214, 0.12);
}

.hwys-client-profile__email-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    align-items: center;
    margin-bottom: 0.75rem;
}

.hwys-client-profile__email-row input[type="email"] {
    flex: 1 1 16rem;
    min-width: 0;
}

.hwys-client-profile__effective {
    margin-top: 1rem;
    padding-top: 0.75rem;
    border-top: 1px dashed rgba(60, 60, 67, 0.15);
}

.hwys-amendment-customer__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
}

.hwys-amendment-customer__summary {
    font-size: 0.92rem;
    line-height: 1.65;
    color: #1e293b;
    margin-bottom: 0.75rem;
}

.hwys-amendment-customer__diff {
    margin: 0.5rem 0 0.75rem;
    border: 1px solid rgba(60, 60, 67, 0.12);
    border-radius: 8px;
    overflow: hidden;
}

.hwys-amendment-customer__diff-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.hwys-amendment-customer__diff-row--head {
    background: #f1f5f9;
    font-size: 0.78rem;
    font-weight: 700;
    color: #475569;
}

.hwys-amendment-customer__diff-row--head > div,
.hwys-amendment-customer__diff-before,
.hwys-amendment-customer__diff-after {
    padding: 0.55rem 0.7rem;
    font-size: 0.88rem;
    line-height: 1.55;
}

.hwys-amendment-customer__diff-before {
    border-right: 1px solid rgba(60, 60, 67, 0.1);
    background: #fff;
}

.hwys-amendment-customer__diff-after {
    background: #f0fdf4;
}

@media (max-width: 640px) {
    .hwys-amendment-customer__diff-row {
        grid-template-columns: 1fr;
    }
    .hwys-amendment-customer__diff-before {
        border-right: 0;
        border-bottom: 1px solid rgba(60, 60, 67, 0.1);
    }
}

.hwys-amendment-customer__foot {
    margin: 0;
    font-size: 0.84rem;
}

body.hwys-page--portal-request main#hwys-main,
body.hwys-page--portal-chat main#hwys-main,
body.hwys-page--portal-payment main#hwys-main,
body.hwys-page--portal-settings main#hwys-main {
    align-items: stretch;
}

body.hwys-page--portal-request main#hwys-main > .hwys-portal-panel,
body.hwys-page--portal-chat main#hwys-main > .hwys-portal-panel,
body.hwys-page--portal-payment main#hwys-main > *,
body.hwys-page--portal-settings main#hwys-main > * {
    width: 100%;
    box-sizing: border-box;
}

body.hwys-page--portal-settings .hwys-portal-settings-shell {
    max-width: min(56rem, 96vw);
}

body.hwys-page--portal-payment .hwys-portal-payment-form,
body.hwys-page--portal-payment .hwys-portal-payment-form .hwys-payment-fieldset {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

body.hwys-page--portal-payment .hwys-portal-panel,
body.hwys-page--portal-payment .hwys-debit-customer-flow,
body.hwys-page--portal-payment .hwys-pay-next,
body.hwys-page--portal-payment .hwys-pay-steps,
body.hwys-page--portal-payment .hwys-portal-payment-steps-wrapper,
body.hwys-page--portal-payment .hwys-payment-security,
body.hwys-page--portal-payment .hwys-portal-payment-pricing {
    width: 100%;
    box-sizing: border-box;
}

body.hwys-page--portal-settings .hwys-portal-settings-section,
body.hwys-page--portal-settings .hwys-portal-settings-nav,
body.hwys-page--portal-settings .hwys-portal-settings-header {
    width: 100%;
}

body.hwys-page--portal-settings .hwys-portal-settings-form input[type="text"],
body.hwys-page--portal-settings .hwys-portal-settings-form input[type="email"],
body.hwys-page--portal-settings .hwys-portal-settings-form input[type="tel"],
body.hwys-page--portal-settings .hwys-portal-settings-form select,
body.hwys-page--portal-settings .hwys-portal-settings-form textarea {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.hwys-workflow-compare--embedded {
    margin: 0.35rem 0 0.5rem;
    padding: 0;
    border: none;
    background: transparent;
}

.hwys-workflow-compare--embedded .hwys-workflow-compare__grid {
    gap: 0.5rem;
}

.hwys-workflow-compare--embedded .hwys-workflow-compare__card {
    padding: 0.65rem 0.75rem;
    font-size: 0.88rem;
}

.hwys-portal-request-help-link {
    margin: 0 0 0.85rem;
    font-size: 0.85rem;
}

.hwys-portal-request-help-link a {
    font-weight: 600;
}

.hwys-portal-request-back {
    margin: 0 0 0.85rem;
    font-size: 0.88rem;
}

.hwys-portal-request-back a {
    color: var(--hwys-accent, #4f46e5);
    text-decoration: none;
    font-weight: 600;
}

.hwys-portal-request-back a:hover {
    text-decoration: underline;
}

.hwys-portal-request-choices {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.85rem;
    margin: 0.5rem 0 0;
}

@media (min-width: 520px) {
    .hwys-portal-request-choices {
        grid-template-columns: 1fr 1fr;
    }
}

.hwys-portal-request-choice {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    padding: 1rem 1.05rem;
    border: 2px solid var(--hwys-border, #e2e8f0);
    border-radius: 12px;
    text-decoration: none;
    color: inherit;
    background: #fff;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.hwys-portal-request-choice:hover {
    border-color: var(--hwys-accent, #4f46e5);
    box-shadow: 0 6px 20px rgba(79, 70, 229, 0.12);
    transform: translateY(-1px);
}

.hwys-portal-request-choice__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.hwys-portal-request-choice__glyph {
    font-size: 1.35rem;
    line-height: 1;
}

.hwys-portal-request-choice__badge {
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.2rem 0.5rem;
    border-radius: 999px;
    background: var(--hwys-accent-soft, #e0e7ff);
    color: var(--hwys-accent, #4f46e5);
}

.hwys-portal-request-choice__badge--alert {
    background: #fef3c7;
    color: #b45309;
}

.hwys-portal-request-choice__title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--hwys-ink, #0f172a);
}

.hwys-portal-request-choice__desc {
    font-size: 0.86rem;
    color: var(--hwys-muted, #64748b);
    line-height: 1.4;
}

.hwys-portal-request-choice__meta {
    margin-top: 0.15rem;
    font-size: 0.8rem;
    color: var(--hwys-muted, #64748b);
}

.hwys-portal-request-choice__meta--warn {
    color: #b45309;
}

.hwys-portal-request-chats-page {
    margin-top: 0.25rem;
}

.hwys-portal-request-chats-page .hwys-portal-chat-shell {
    min-height: min(60vh, 44rem);
}

.hwys-portal-chat-notice--compact {
    margin: 0 0 0.75rem;
}

.hwys-portal-request-compose {
    padding: 0.15rem 0 0;
}

.hwys-portal-request-compose__hint {
    margin: 0.35rem 0 0.85rem;
    font-size: 0.85rem;
}

.hwys-portal-request-compose__actions {
    margin-top: 0.25rem;
}

.hwys-portal-category-fieldset--compact {
    margin-bottom: 0.85rem;
}

.hwys-portal-category-fieldset--compact .hwys-portal-category-card__desc {
    font-size: 0.82rem;
    line-height: 1.35;
}

.hwys-portal-meeting-notice--compact {
    margin: 0 0 0.75rem;
}

.hwys-portal-post-help__body .hwys-portal-quota {
    margin: 0.35rem 0 0;
    padding: 0.65rem 0.75rem;
}

body.hwys-page--portal-request .hwys-portal-panel--revision-form .hwys-portal-panel__head h1 {
    letter-spacing: 0.02em;
}

body.hwys-page--portal-request .hwys-portal-category-card__inner {
    min-height: 7.5rem;
}

/* --- 修正・打合せ依頼（統合ページ） --- */
.hwys-portal-request-hub {
    margin: 0 0 1rem;
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--hwys-separator, #e6e8ec);
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}

.hwys-portal-request-hub__summary {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.85rem 1rem;
    font-size: 0.95rem;
    font-weight: 700;
    color: #1c1c1e;
    cursor: pointer;
    list-style: none;
    user-select: none;
    background: linear-gradient(180deg, #fafbfc 0%, #f4f5f7 100%);
}

.hwys-portal-request-hub__summary::-webkit-details-marker {
    display: none;
}

.hwys-portal-request-hub__summary::before {
    content: "▼";
    font-size: 0.72rem;
    color: #64748b;
    transition: transform 0.15s ease;
}

.hwys-portal-request-hub:not([open]) .hwys-portal-request-hub__summary::before {
    transform: rotate(-90deg);
}

.hwys-portal-request-hub__inner {
    padding: 0 1rem 1rem;
    border-top: 1px solid var(--hwys-separator, #e6e8ec);
}

.hwys-page--portal-request .hwys-portal-request-hub__inner .hwys-portal-chat-shell {
    min-height: min(60vh, 44rem);
}

.hwys-portal-chat-page {
    width: 100%;
    max-width: 52rem;
}

.hwys-page--portal-chat .hwys-portal-panel--chat-page {
    margin-top: 0.5rem;
}

.hwys-page--portal-chat .hwys-portal-chat-shell {
    min-height: min(72vh, 52rem);
}

.hwys-portal-legal-row--primary {
    margin-bottom: 1.35rem;
}

.hwys-portal-cancel-foot {
    margin: 1.25rem 0 0.5rem;
    text-align: center;
    font-size: 0.78rem;
}

.hwys-portal-cancel-foot__link {
    color: #94a3b8;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.hwys-portal-cancel-foot__link:hover {
    color: #64748b;
}

/* --- 依頼チャット --- */
.hwys-portal-chat-notice {
    margin: 0 0 1rem;
    padding: 0.75rem 0.9rem;
    border-radius: 10px;
    border: 1px solid rgba(88, 86, 214, 0.18);
    background: #f8f7ff;
    font-size: 0.82rem;
    line-height: 1.55;
}

.hwys-portal-chat-notice__title {
    margin: 0 0 0.35rem;
    font-weight: 700;
    color: #5856d6;
}

.hwys-portal-chat-notice__body {
    margin: 0 0 0.35rem;
}

.hwys-portal-chat-notice__body--quota {
    color: #64748b;
}

.hwys-portal-chat-thread {
    margin: 0 0 1.25rem;
    padding: 0.85rem 0.95rem;
    border: 1px solid var(--hwys-separator, #e6e8ec);
    border-radius: 12px;
    background: #fff;
}

.hwys-portal-chat-thread--active {
    border-color: rgba(163, 230, 53, 0.55);
    box-shadow: 0 0 0 1px rgba(163, 230, 53, 0.15);
}

.hwys-portal-chat-thread__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.65rem;
    margin-bottom: 0.65rem;
}

.hwys-portal-chat-thread__title {
    margin: 0;
    font-size: 0.95rem;
    flex: 1 1 100%;
}

.hwys-portal-chat-status {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
}

.hwys-portal-chat-status--active {
    background: #ecfccb;
    color: #3f6212;
}

.hwys-portal-chat-status--done {
    background: #f1f5f9;
    color: #64748b;
}

.hwys-portal-chat-status__dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 999px;
    background: #84cc16;
    box-shadow: 0 0 0 2px rgba(132, 204, 22, 0.25);
}

.hwys-portal-chat-messages {
    list-style: none;
    margin: 0;
    padding: 0.65rem 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.hwys-portal-chat-messages__empty {
    margin: 1.5rem 0.5rem;
    text-align: center;
    font-size: 0.85rem;
}

.hwys-portal-chat-msg {
    display: flex;
    align-items: flex-end;
    gap: 0.35rem;
    max-width: 100%;
}

.hwys-portal-chat-msg--mine {
    flex-direction: row-reverse;
    align-self: flex-end;
}

.hwys-portal-chat-msg--theirs {
    align-self: flex-start;
}

.hwys-portal-chat-msg--continued {
    margin-top: -0.15rem;
}

.hwys-portal-chat-msg--continued .hwys-portal-chat-msg__bubble {
    border-top-left-radius: 12px;
}

.hwys-portal-chat-msg--mine.hwys-portal-chat-msg--continued .hwys-portal-chat-msg__bubble {
    border-top-right-radius: 12px;
}

.hwys-portal-chat-msg__bubble {
    max-width: min(78%, 22rem);
    padding: 0.5rem 0.75rem;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.06);
    word-break: break-word;
}

.hwys-portal-chat-msg--theirs .hwys-portal-chat-msg__bubble {
    border-bottom-left-radius: 4px;
}

.hwys-portal-chat-msg--mine .hwys-portal-chat-msg__bubble {
    background: #8de055;
    border-bottom-right-radius: 4px;
    box-shadow: none;
}

.hwys-portal-chat-msg__who {
    display: block;
    font-size: 0.65rem;
    font-weight: 700;
    color: #64748b;
    margin-bottom: 0.2rem;
}

.hwys-portal-chat-msg--mine .hwys-portal-chat-msg__who {
    text-align: right;
    color: rgba(0, 0, 0, 0.45);
}

.hwys-admin-push-settings {
    margin: 0.75rem 0 1rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--hwys-separator, #e6e8ec);
    border-radius: 10px;
    background: #f8fafc;
    font-size: 0.88rem;
}

.hwys-admin-push-settings--compact {
    margin: 1rem 0 0;
}

.hwys-admin-push-settings__toggle {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    cursor: pointer;
    font-weight: 600;
}

.hwys-admin-push-settings__hint {
    margin: 0.4rem 0 0 1.5rem;
    font-size: 0.8rem;
    line-height: 1.5;
}

.hwys-portal-chat-msg--fresh {
    animation: hwys-chat-msg-in 0.35s ease-out;
}

@keyframes hwys-chat-msg-in {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.hwys-portal-chat-msg__body {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.55;
}

.hwys-portal-chat-msg__time {
    flex-shrink: 0;
    align-self: flex-end;
    margin-bottom: 0.15rem;
    font-size: 0.62rem;
    color: #94a3b8;
    white-space: nowrap;
}

.hwys-portal-chat-msg__photos {
    list-style: none;
    margin: 0.35rem 0 0;
    padding: 0;
    display: flex;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.hwys-portal-chat-msg__photos img {
    border-radius: 8px;
    object-fit: cover;
}

/* LINE風 — 会話ペイン */
.hwys-portal-chat-convo {
    display: flex;
    flex-direction: column;
    min-height: 0;
    margin: 0.5rem 0 0;
    border: 1px solid rgba(60, 60, 67, 0.12);
    border-radius: 14px;
    background: #eceff1;
    overflow: hidden;
}

.hwys-portal-chat-convo__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.65rem;
    margin: 0;
    padding: 0.45rem 0.65rem;
    background: rgba(255, 255, 255, 0.85);
    border-bottom: 1px solid rgba(60, 60, 67, 0.08);
    font-size: 0.78rem;
}

.hwys-portal-chat-stream {
    flex: 1 1 auto;
    min-height: 12rem;
    max-height: min(52vh, 28rem);
    overflow-y: auto;
    overscroll-behavior: contain;
}

.hwys-portal-chat-compose.hwys-portal-chat-compose--line {
    display: flex;
    align-items: flex-end;
    gap: 0.45rem;
    margin: 0;
    padding: 0.55rem 0.65rem;
    background: #fff;
    border-top: 1px solid rgba(60, 60, 67, 0.1);
}

.hwys-portal-chat-compose--line textarea {
    flex: 1 1 auto;
    width: auto;
    min-height: 2.25rem;
    max-height: 6rem;
    margin: 0;
    padding: 0.45rem 0.65rem;
    border: 1px solid rgba(60, 60, 67, 0.18);
    border-radius: 999px;
    resize: none;
    font-size: 0.88rem;
    line-height: 1.45;
}

.hwys-portal-chat-compose--line .hwys-portal-chat-compose__send {
    flex-shrink: 0;
    min-width: 3.5rem;
    padding: 0.45rem 0.85rem;
    border-radius: 999px;
    font-size: 0.82rem;
}

.hwys-portal-chat-complete--compact {
    display: flex;
    justify-content: flex-end;
    margin: 0;
    padding: 0.35rem 0.65rem 0.55rem;
    background: #fff;
}

.hwys-portal-chat-convo__closed {
    margin: 0;
    padding: 0.65rem;
    background: #fff;
    border-top: 1px solid rgba(60, 60, 67, 0.1);
    font-size: 0.85rem;
    text-align: center;
}

.hwys-portal-chat-aux {
    margin: 0.65rem 0 0;
    border: 1px solid rgba(60, 60, 67, 0.12);
    border-radius: 12px;
    background: #fff;
}

.hwys-portal-chat-aux__summary {
    padding: 0.55rem 0.75rem;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    list-style: none;
}

.hwys-portal-chat-aux__summary::-webkit-details-marker {
    display: none;
}

.hwys-portal-chat-aux__count {
    display: inline-block;
    min-width: 1.2rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: rgba(88, 86, 214, 0.12);
    font-size: 0.72rem;
    font-weight: 700;
}

.hwys-portal-chat-aux__body {
    padding: 0 0.75rem 0.75rem;
}

.hwys-portal-chat-aux__body .hwys-portal-thread-pins,
.hwys-portal-chat-aux__body .hwys-portal-thread-files {
    margin: 0.5rem 0 0;
}

.hwys-portal-chat-aux--memo .hwys-portal-chat-memos {
    margin: 0.5rem 0 0;
    border: none;
    background: transparent;
    padding: 0;
}

.hwys-portal-chat-compose textarea {
    width: 100%;
    min-height: 4.5rem;
}

.hwys-portal-chat-compose__actions {
    margin-top: 0.45rem;
}

.hwys-portal-chat-complete {
    margin-top: 0.35rem;
}

.hwys-portal-chat-memos {
    margin: 0.5rem 0 0.75rem;
    padding: 0.65rem 0.75rem;
    border-radius: 10px;
    background: #fafafa;
    border: 1px dashed #e2e8f0;
}

.hwys-portal-chat-memos__title {
    margin: 0 0 0.25rem;
    font-size: 0.82rem;
}

.hwys-portal-chat-memo-list {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
}

.hwys-portal-chat-memo {
    margin: 0 0 0.55rem;
    padding: 0.45rem 0;
    border-bottom: 1px solid #eef2f7;
}

.hwys-portal-chat-memo--system .hwys-portal-chat-memo__body {
    color: #475569;
}

.hwys-portal-chat-memo__head {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.72rem;
    margin-bottom: 0.2rem;
}

.hwys-portal-chat-memo__body {
    font-size: 0.82rem;
    line-height: 1.55;
    white-space: pre-wrap;
}

.hwys-portal-chat-thread__warn {
    color: #c93400;
    font-size: 0.78rem;
    font-weight: 600;
}

.hwys-portal-chat-thread__warn--admin {
    color: #c93400;
}

.hwys-portal-chat-thread__warn--customer {
    color: #5856d6;
}

.hwys-portal-chat-thread__warn--wait {
    color: #854d0e;
}

.hwys-portal-chat-complete__lead {
    margin: 0.35rem 0 0.5rem;
    font-size: 0.85rem;
}

.hwys-admin-inbox-chat-only {
    margin: 0.75rem 0;
    padding: 0.75rem 0.85rem;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}

.hwys-portal-panel--chat-request .hwys-portal-chat-compose__hint {
    margin-top: 0.35rem;
    font-size: 0.88rem;
}

.hwys-portal-panel--chat-request .hwys-portal-chat-compose__actions {
    margin-top: 1rem;
}

.hwys-portal-thread-pins,
.hwys-portal-thread-files {
    margin: 0.85rem 0;
    padding: 0.85rem 1rem;
    border-radius: 14px;
    border: 1px solid rgba(60, 60, 67, 0.12);
    background: #f8fafc;
}

.hwys-portal-thread-pins__title,
.hwys-portal-thread-files__title {
    margin: 0 0 0.35rem;
    font-size: 0.95rem;
}

.hwys-portal-thread-pin-list {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.hwys-portal-thread-pin {
    padding: 0.65rem 0.75rem;
    border-radius: 10px;
    background: #fff;
    border: 1px solid rgba(88, 86, 214, 0.15);
}

.hwys-portal-thread-pin__head {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.78rem;
    margin-bottom: 0.35rem;
}

.hwys-portal-thread-file-grid {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.hwys-portal-thread-file img {
    border-radius: 8px;
    object-fit: cover;
}

/* ファイル選択 — 共通（チャット添付・ポータル写真など） */
.hwys-file-upload {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 0.85rem;
}

.hwys-file-upload__field {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.hwys-file-upload__heading {
    font-weight: 700;
    font-size: 0.9rem;
    color: #1e293b;
}

.hwys-file-upload__hint {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.5;
}

.hwys-file-upload__zone {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem 0.85rem;
    padding: 0.9rem 1rem;
    border: 1.5px dashed rgba(88, 86, 214, 0.38);
    border-radius: 12px;
    background: #fff;
}

.hwys-file-upload__input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.hwys-file-upload__pick {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.35rem;
    padding: 0.5rem 1rem;
    border-radius: 999px;
    border: 1px solid rgba(88, 86, 214, 0.45);
    background: #f5f3ff;
    color: #5856d6;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.hwys-file-upload__pick:hover {
    background: #ede9fe;
    border-color: #5856d6;
}

.hwys-file-upload__input:focus-visible + .hwys-file-upload__pick {
    outline: 2px solid #5856d6;
    outline-offset: 2px;
}

.hwys-file-upload__input:disabled + .hwys-file-upload__pick {
    opacity: 0.55;
    cursor: not-allowed;
}

.hwys-file-upload__names {
    flex: 1 1 9rem;
    min-width: 0;
    font-size: 0.84rem;
    line-height: 1.45;
    word-break: break-all;
}

.hwys-file-upload__names.is-selected {
    color: #334155;
    font-weight: 500;
}

.hwys-file-upload__actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding-top: 0.1rem;
}

.hwys-portal-photo-section .hwys-file-upload__field {
    margin-top: 0.35rem;
}

.hwys-hearing-asset-fieldset .hwys-file-upload__field,
.hwys-page-block__body .hwys-file-upload__field,
.hwys-basic-branch-extra .hwys-file-upload__field {
    margin: 0.65rem 0 0.85rem;
}

/* 特定商取引法表記 */
.hwys-tokusho {
    max-width: 42rem;
    margin: 0 auto;
}

.hwys-tokusho__head {
    margin-bottom: 1.25rem;
}

.hwys-tokusho__title {
    margin: 0 0 0.5rem;
    font-size: 1.35rem;
    line-height: 1.35;
    color: #1e293b;
}

.hwys-tokusho__lead {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.6;
    color: #64748b;
}

.hwys-tokusho__table-wrap {
    overflow-x: auto;
    border: 1px solid rgba(60, 60, 67, 0.12);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}

.hwys-tokusho__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
    line-height: 1.6;
}

.hwys-tokusho__table th,
.hwys-tokusho__table td {
    padding: 0.85rem 1rem;
    vertical-align: top;
    text-align: left;
    border-bottom: 1px solid rgba(60, 60, 67, 0.08);
}

.hwys-tokusho__table tr:last-child th,
.hwys-tokusho__table tr:last-child td {
    border-bottom: none;
}

.hwys-tokusho__table th {
    width: 9.5rem;
    min-width: 7.5rem;
    font-weight: 700;
    color: #334155;
    background: #f8fafc;
    white-space: nowrap;
}

.hwys-tokusho__table td {
    color: #1e293b;
}

.hwys-tokusho__table td p {
    margin: 0 0 0.45rem;
}

.hwys-tokusho__table td p:last-child {
    margin-bottom: 0;
}

.hwys-tokusho__list {
    margin: 0;
    padding-left: 1.15rem;
}

.hwys-tokusho__list li + li {
    margin-top: 0.35rem;
}

.hwys-tokusho__note {
    margin: 0.5rem 0 0;
    font-size: 0.84rem;
    color: #64748b;
}

.hwys-tokusho__updated {
    margin: 0.85rem 0 0;
    font-size: 0.78rem;
    text-align: right;
}

@media (max-width: 540px) {
    .hwys-tokusho__table,
    .hwys-tokusho__table tbody,
    .hwys-tokusho__table tr,
    .hwys-tokusho__table th,
    .hwys-tokusho__table td {
        display: block;
        width: 100%;
    }

    .hwys-tokusho__table th {
        border-bottom: none;
        padding-bottom: 0.35rem;
        background: #f1f5f9;
    }

    .hwys-tokusho__table td {
        padding-top: 0.35rem;
        padding-bottom: 1rem;
    }
}

.hwys-tokusho__cross,
.hwys-legal-doc__cross {
    margin: 0.75rem 0 0;
    font-size: 0.9rem;
}

.hwys-legal-doc {
    color: #1e293b;
}

.hwys-legal-doc__head {
    margin-bottom: 1.25rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #e2e8f0;
}

.hwys-legal-doc__title {
    margin: 0 0 0.4rem;
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.hwys-legal-doc__lead {
    margin: 0;
    color: #64748b;
    font-size: 0.92rem;
    line-height: 1.65;
}

.hwys-legal-doc-body {
    line-height: 1.75;
    word-break: break-word;
}

.hwys-legal-doc-body--formatted {
    white-space: normal;
}

.hwys-legal-doc__intro {
    margin: 0 0 0.5rem;
    padding: 0.9rem 1rem;
    border-radius: 12px;
    background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
    border: 1px solid #e2e8f0;
    line-height: 1.8;
    color: #334155;
    font-size: 0.94rem;
}

.hwys-legal-doc__section {
    padding: 1rem 0;
    border-top: 1px solid #eef2f6;
}

.hwys-legal-doc__section:first-of-type {
    border-top: none;
    padding-top: 0.25rem;
}

.hwys-legal-doc__section-title {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    margin: 0 0 0.7rem;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.45;
}

.hwys-legal-doc__section-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.85rem;
    height: 1.85rem;
    margin-top: 0.05rem;
    border-radius: 999px;
    background: rgba(88, 86, 214, 0.12);
    color: #5856d6;
    font-size: 0.82rem;
    font-weight: 700;
    flex-shrink: 0;
}

.hwys-legal-doc__list {
    margin: 0;
    padding: 0 0 0 0.15rem;
    list-style: none;
}

.hwys-legal-doc__list li {
    position: relative;
    padding-left: 1.1rem;
    line-height: 1.75;
    color: #334155;
    font-size: 0.94rem;
}

.hwys-legal-doc__list li::before {
    content: "・";
    position: absolute;
    left: 0;
    color: #5856d6;
    font-weight: 700;
}

.hwys-legal-doc__list li + li {
    margin-top: 0.5rem;
}

.hwys-legal-doc__meta {
    margin-top: 1.1rem;
    padding-top: 1rem;
    border-top: 1px dashed #cbd5e1;
    color: #64748b;
    font-size: 0.88rem;
}

.hwys-legal-doc__meta p {
    margin: 0.2rem 0 0;
}

.hwys-legal-doc__updated {
    margin: 1rem 0 0;
    padding-top: 0.75rem;
    border-top: 1px solid #eef2f6;
    font-size: 0.78rem;
    text-align: right;
    color: #94a3b8;
}

.hwys-page--legal-public .hwys-portal-shell {
    max-width: 44rem;
}

.hwys-page--legal-public .hwys-portal-panel {
    padding: 1.25rem 1.35rem 1.5rem;
}

.hwys-page--legal-public .hwys-portal-form-back a {
    font-size: 0.9rem;
}

.hwys-page--privacy.hwys-page--legal-public .hwys-legal-doc,
.hwys-page--tokusho.hwys-page--legal-public .hwys-tokusho {
    margin: 0;
}

.hwys-portal-thread-file-delete {
    margin-top: 0.35rem;
}

.hwys-portal-push-settings {
    margin: 1rem 0;
    padding: 1rem 1.1rem;
    border-radius: 16px;
    border: 1px solid rgba(60, 60, 67, 0.12);
    background: #fff;
}

.hwys-portal-push-settings__toggle {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-weight: 600;
}

.hwys-portal-chat-thread__tools {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.5rem;
    width: 100%;
}

.hwys-portal-chat-thread__tool-count {
    display: inline-block;
    min-width: 1.25rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: rgba(88, 86, 214, 0.12);
    font-size: 0.75rem;
    font-weight: 700;
}

/* 依頼チャット — 一覧カード + 詳細ペイン */
.hwys-portal-chat-shell {
    display: grid;
    grid-template-columns: minmax(0, 15.5rem) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
    margin-top: 0.75rem;
}

.hwys-portal-chat-list__lead {
    margin: 0 0 0.65rem;
    font-size: 0.85rem;
}

.hwys-portal-chat-list__items {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.hwys-portal-chat-card-wrap {
    margin: 0;
}

.hwys-portal-chat-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
    width: 100%;
    padding: 0.75rem 0.85rem;
    border: 1px solid rgba(60, 60, 67, 0.14);
    border-radius: 14px;
    background: #fff;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.hwys-portal-chat-card:hover {
    border-color: rgba(88, 86, 214, 0.35);
}

.hwys-portal-chat-card--selected {
    border-color: rgba(88, 86, 214, 0.55);
    box-shadow: 0 0 0 2px rgba(88, 86, 214, 0.12);
    background: #f8f7ff;
}

.hwys-portal-chat-card--unread {
    border-color: rgba(255, 45, 85, 0.35);
}

.hwys-portal-chat-card__top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    width: 100%;
}

.hwys-portal-chat-card__kind {
    font-size: 0.72rem;
    color: #64748b;
}

.hwys-portal-chat-card__alert {
    margin-left: auto;
    font-size: 0.72rem;
    font-weight: 700;
    color: #c93400;
}

.hwys-portal-chat-card__title {
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.45;
    color: #1c1c1e;
}

.hwys-portal-chat-card__meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.35rem;
    width: 100%;
    font-size: 0.75rem;
    color: #64748b;
}

.hwys-portal-chat-card__counts {
    display: inline-flex;
    gap: 0.45rem;
}

.hwys-portal-chat-card__count {
    font-weight: 600;
}

.hwys-portal-chat-detail {
    min-width: 0;
}

.hwys-portal-chat-detail__empty {
    padding: 2rem 1rem;
    border: 1px dashed rgba(60, 60, 67, 0.2);
    border-radius: 14px;
    text-align: center;
    background: rgba(255, 255, 255, 0.7);
}

.hwys-portal-chat-detail__empty-title {
    margin: 0 0 0.35rem;
    font-weight: 700;
}

.hwys-portal-chat-detail__toolbar {
    margin-bottom: 0.5rem;
}

.hwys-portal-chat-detail__back {
    display: none;
}

.hwys-portal-chat-thread--detail {
    margin-bottom: 0;
}

.hwys-admin-chat-panel .hwys-portal-chat-shell {
    grid-template-columns: minmax(0, 14rem) minmax(0, 1fr);
}

@media (max-width: 720px) {
    .hwys-portal-chat-shell {
        grid-template-columns: 1fr;
    }

    .hwys-portal-chat-shell--has-selection .hwys-portal-chat-list {
        display: none;
    }

    .hwys-portal-chat-shell:not(.hwys-portal-chat-shell--has-selection) .hwys-portal-chat-detail {
        display: none;
    }

    .hwys-portal-chat-shell--has-selection .hwys-portal-chat-detail__back {
        display: inline-flex;
    }
}

.hwys-admin-chat-panel {
    margin: 1.25rem 0;
    padding-top: 1rem;
    border-top: 1px solid #e2e8f0;
}

.hwys-page--admin-chat .hwys-admin-chat-panel--page {
    margin: 0;
    padding-top: 0;
    border-top: none;
}

.hwys-page--admin-chat .hwys-admin-chat-panel--page .hwys-portal-chat-shell {
    grid-template-columns: minmax(0, 16rem) minmax(0, 1fr);
    min-height: min(72vh, 52rem);
}

.hwys-page--admin-chat .hwys-panel--chat-intro {
    margin-bottom: 1rem;
}

.hwys-admin-legal-panel {
    margin: 0 0 1rem;
    padding: 0.9rem 1rem;
    border-radius: 12px;
    border: 1px solid rgba(88, 86, 214, 0.35);
    background: linear-gradient(180deg, #f5f4ff 0%, #fff 100%);
}

.hwys-admin-legal-panel__title {
    margin: 0 0 0.35rem;
    color: #4338ca;
    font-size: 1rem;
}

.hwys-admin-legal-panel__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0.65rem 0;
}

.hwys-admin-legal-panel__hint {
    margin: 0;
    font-size: 0.82rem;
}

/* —— サイト投稿 CMS —— */
.hwys-post-cms-panel {
    margin: 1.5rem 0 0;
    padding: 1.25rem 1.35rem;
    border-radius: 16px;
    border: 1px solid rgba(99, 102, 241, 0.28);
    background: linear-gradient(165deg, #fafbff 0%, #fff 55%, #f8fafc 100%);
    box-shadow: 0 12px 40px rgba(15, 23, 42, 0.06);
}

.hwys-post-cms-panel__title {
    margin: 0 0 0.35rem;
    font-size: 1.15rem;
    letter-spacing: -0.02em;
    color: #312e81;
}

.hwys-post-cms-panel__lead {
    margin: 0 0 1rem;
    font-size: 0.875rem;
}

.hwys-post-cms-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1rem;
}

.hwys-post-cms-card {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 1rem 1.1rem;
}

.hwys-post-cms-card--wide {
    grid-column: 1 / -1;
}

.hwys-post-cms-card__title {
    margin: 0 0 0.65rem;
    font-size: 0.95rem;
    font-weight: 700;
    color: #334155;
}

.hwys-post-cms-cat-list,
.hwys-post-cms-hub-list,
.hwys-post-cms-pub-list {
    list-style: none;
    margin: 0 0 0.75rem;
    padding: 0;
}

.hwys-post-cms-cat-list__item,
.hwys-post-cms-hub-list__item,
.hwys-post-cms-pub-list__item {
    padding: 0.65rem 0;
    border-bottom: 1px solid #f1f5f9;
}

.hwys-post-cms-pub-list__item--open {
    background: #f8fafc;
    margin: 0 -0.5rem;
    padding: 0.75rem 0.5rem;
    border-radius: 10px;
}

.hwys-post-cms-pub-list__head {
    margin-bottom: 0.35rem;
}

.hwys-post-cms-cat-list__actions,
.hwys-post-cms-hub-list__actions,
.hwys-post-cms-pub-list__actions,
.hwys-portal-posts-list__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.45rem;
}

.hwys-post-cms-pub-list__actions {
    margin-top: 0.35rem;
}

.hwys-post-cms-form--published {
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px dashed #e2e8f0;
}

.hwys-post-cms-cat-list__item:last-child,
.hwys-post-cms-hub-list__item:last-child {
    border-bottom: none;
}

.hwys-post-cms-cat-list__item--off {
    opacity: 0.65;
}

.hwys-post-cms-cat-list__main strong {
    font-size: 0.92rem;
}

.hwys-post-cms-cat-list__desc {
    margin: 0.25rem 0 0;
    font-size: 0.8125rem;
}

.hwys-post-cms-slug {
    font-size: 0.75rem;
    color: #64748b;
    background: #f1f5f9;
    padding: 0.1rem 0.35rem;
    border-radius: 4px;
}

.hwys-post-cms-inline-form,
.hwys-inline-btn-form {
    display: inline-flex;
    align-items: center;
    margin: 0;
    padding: 0;
    border: 0;
    vertical-align: middle;
}

.hwys-post-cms-form-details {
    margin-top: 0.75rem;
    border-top: 1px dashed #e2e8f0;
    padding-top: 0.75rem;
}

.hwys-post-cms-form-details summary {
    cursor: pointer;
    font-weight: 600;
    font-size: 0.875rem;
    color: #4f46e5;
}

.hwys-post-cms-form {
    display: grid;
    gap: 0.65rem;
    margin-top: 0.75rem;
}

.hwys-post-cms-form label {
    display: grid;
    gap: 0.25rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #475569;
}

.hwys-post-cms-form input[type="text"],
.hwys-post-cms-form input[type="number"],
.hwys-post-cms-form textarea,
.hwys-post-cms-select {
    font: inherit;
    padding: 0.5rem 0.65rem;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    background: #fff;
}

.hwys-post-cms-fieldset {
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 0.65rem 0.85rem;
    margin: 0;
}

.hwys-post-cms-fieldset legend {
    font-size: 0.8125rem;
    font-weight: 600;
    padding: 0 0.25rem;
}

.hwys-post-cms-check-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 0.35rem;
}

.hwys-post-cms-check {
    font-weight: 400 !important;
    display: flex !important;
    align-items: center;
    gap: 0.4rem;
}

body.hwys-page--portal .hwys-post-cms-select {
    width: 100%;
    margin-bottom: 0.5rem;
}

.hwys-post-cms-cat-field {
    margin-bottom: 0.85rem;
}

.hwys-post-cms-cat-field__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.65rem;
}

.hwys-post-cms-cat-field__row .hwys-post-cms-select {
    flex: 1 1 12rem;
    min-width: 10rem;
    margin-bottom: 0;
}

.hwys-post-cms-cat-field__hint {
    margin: 0.4rem 0 0;
    font-size: 0.82rem;
}

.hwys-post-cms-cat-field__flash {
    margin: 0.35rem 0 0.5rem;
    font-size: 0.88rem;
}

.hwys-post-cms-cat-field__add-panel {
    margin-top: 0.55rem;
    padding: 0.65rem 0.75rem;
    border: 1px dashed var(--hwys-border, #e2e8f0);
    border-radius: 0.5rem;
    background: rgba(0, 0, 0, 0.02);
}

.hwys-portal-chat-memo__edit .hwys-portal-chat-memo-form + .hwys-portal-chat-memo-delete {
    margin-top: 0.35rem;
}

.hwys-portal-chat-memo__edit .hwys-actions-inline,
.hwys-portal-thread-pin__edit .hwys-actions-inline {
    margin-top: 0.35rem;
}

.hwys-post-cms-cat-add-form {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.55rem;
}

.hwys-post-cms-cat-add-form input[type="text"] {
    flex: 1 1 12rem;
    min-width: 10rem;
    padding: 0.45rem 0.6rem;
    border: 1px solid var(--hwys-border, #e2e8f0);
    border-radius: 0.35rem;
}

.hwys-admin-inbox-publish-form .hwys-post-cms-select {
    width: 100%;
    max-width: 24rem;
    margin-bottom: 0.65rem;
}

/* 顧客 — 投稿履歴 */
.hwys-portal-post-history-toolbar {
    margin: 0 0 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--hwys-border, #e2e8f0);
    border-radius: 12px;
    background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.hwys-portal-post-history-toolbar__row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem 1.25rem;
}

.hwys-portal-post-history-toolbar__field {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: min(100%, 14rem);
    flex: 1 1 12rem;
}

.hwys-portal-post-history-toolbar__label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #64748b;
    text-transform: uppercase;
}

.hwys-portal-post-history-toolbar__select {
    width: 100%;
    padding: 0.5rem 0.65rem;
    border: 1px solid var(--hwys-border, #cbd5e1);
    border-radius: 8px;
    font-size: 0.9rem;
    background: #fff;
}

.hwys-portal-post-history-toolbar__sort {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.hwys-portal-post-history-sort {
    display: inline-flex;
    border: 1px solid var(--hwys-border, #cbd5e1);
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}

.hwys-portal-post-history-sort__btn {
    padding: 0.48rem 0.85rem;
    font-size: 0.86rem;
    font-weight: 600;
    color: #475569;
    text-decoration: none;
    border-right: 1px solid var(--hwys-border, #e2e8f0);
}

.hwys-portal-post-history-sort__btn:last-child {
    border-right: 0;
}

.hwys-portal-post-history-sort__btn:hover {
    background: #f1f5f9;
    color: #1e293b;
}

.hwys-portal-post-history-sort__btn--active {
    background: var(--hwys-accent, #5856d6);
    color: #fff;
}

.hwys-portal-post-history-sort__btn--active:hover {
    background: #4a48c4;
    color: #fff;
}

.hwys-portal-post-history-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.hwys-portal-post-history-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.28rem 0.65rem;
    border: 1px solid var(--hwys-border, #e2e8f0);
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 600;
    color: #475569;
    text-decoration: none;
    background: #fff;
}

.hwys-portal-post-history-chip:hover {
    border-color: #c7d2fe;
    background: #eef2ff;
    color: #3730a3;
}

.hwys-portal-post-history-chip--active {
    border-color: var(--hwys-accent, #5856d6);
    background: rgba(88, 86, 214, 0.1);
    color: var(--hwys-accent, #5856d6);
}

.hwys-portal-post-history-chip__n {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    padding: 0 0.3rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    background: rgba(15, 23, 42, 0.06);
}

.hwys-portal-post-history-chip--active .hwys-portal-post-history-chip__n {
    background: rgba(88, 86, 214, 0.18);
}

.hwys-portal-post-history__summary {
    margin: 0 0 0.85rem;
    font-size: 0.84rem;
}

.hwys-portal-post-history-pager {
    margin-top: 1.25rem;
    justify-content: center;
}

.hwys-portal-post-history-pager__status {
    margin: 0 0.75rem;
    font-size: 0.88rem;
}

@media (max-width: 719px) {
    .hwys-portal-post-history-chips {
        display: none;
    }
}

.hwys-portal-posts-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 1rem;
    grid-template-columns: 1fr;
}

@media (min-width: 720px) {
    .hwys-portal-posts-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.hwys-portal-post-card {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--hwys-border, #e2e8f0);
    border-radius: 14px;
    background: var(--hwys-surface, #fff);
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
    scroll-margin-top: 1.25rem;
}

.hwys-portal-post-card--open {
    border-color: var(--hwys-accent, #5856d6);
    box-shadow: 0 0 0 2px rgba(88, 86, 214, 0.12);
}

.hwys-portal-post-card__media {
    position: relative;
    aspect-ratio: 16 / 9;
    background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 100%);
}

.hwys-portal-post-card__thumb {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hwys-portal-post-card__thumb--empty {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: #94a3b8;
}

.hwys-portal-post-card__status {
    position: absolute;
    top: 0.55rem;
    right: 0.55rem;
    backdrop-filter: blur(4px);
}

.hwys-portal-post-card__body {
    padding: 0.9rem 1rem 1rem;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 0.35rem;
}

.hwys-portal-post-card__cat {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    color: #64748b;
    text-transform: uppercase;
}

.hwys-portal-post-card__title {
    margin: 0;
    font-size: 1rem;
    line-height: 1.45;
    color: #1e293b;
}

.hwys-portal-post-card__meta {
    margin: 0;
    font-size: 0.78rem;
}

.hwys-portal-post-card__detail summary {
    cursor: pointer;
    font-size: 0.86rem;
    font-weight: 700;
    color: var(--hwys-accent, #5856d6);
    margin: 0.35rem 0 0.5rem;
}

.hwys-portal-post-card__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: auto;
    padding-top: 0.65rem;
}

.hwys-portal-panel--post-history .hwys-portal-posts-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.85rem;
}

.hwys-portal-posts-list__item {
    border: 1px solid var(--hwys-border, #e2e8f0);
    border-radius: 0.65rem;
    padding: 0.85rem 1rem;
    background: var(--hwys-surface, #fff);
}

.hwys-portal-posts-list__item--open {
    border-color: var(--hwys-accent, #2563eb);
}

.hwys-portal-posts-list__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
}

.hwys-portal-posts-list__title {
    font-size: 1rem;
}

.hwys-portal-posts-list__meta {
    margin: 0.35rem 0 0.5rem;
    font-size: 0.82rem;
}

.hwys-portal-posts-list__detail summary {
    cursor: pointer;
    font-size: 0.88rem;
    color: var(--hwys-accent, #2563eb);
    margin-bottom: 0.5rem;
}

.hwys-portal-posts-list__body {
    font-size: 0.9rem;
    line-height: 1.65;
    white-space: pre-wrap;
}

.hwys-portal-posts-list__compare {
    display: grid;
    gap: 0.75rem;
}

@media (min-width: 720px) {
    .hwys-portal-posts-list__compare {
        grid-template-columns: 1fr 1fr;
    }
}

.hwys-portal-posts-list__col .hwys-portal-subhead {
    font-size: 0.82rem;
    margin: 0 0 0.35rem;
}

.hwys-portal-posts-list__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.65rem;
}

.hwys-portal-posts-list__hint {
    font-size: 0.82rem;
}

/* 運営 — 改稿 · 監査履歴 */
.hwys-post-cms-revision {
    margin-top: 0.75rem;
    padding: 0.65rem 0.75rem;
    border: 1px dashed var(--hwys-border, #e2e8f0);
    border-radius: 0.5rem;
    background: rgba(0, 0, 0, 0.02);
}

.hwys-post-cms-revision summary {
    cursor: pointer;
    font-weight: 600;
    font-size: 0.88rem;
}

.hwys-post-cms-revision__compare {
    display: grid;
    gap: 0.65rem;
    margin: 0.65rem 0;
}

@media (min-width: 720px) {
    .hwys-post-cms-revision__compare {
        grid-template-columns: 1fr 1fr;
    }
}

.hwys-post-cms-revision__label {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin: 0 0 0.35rem;
    color: var(--hwys-muted, #64748b);
}

.hwys-post-cms-revision__body {
    font-size: 0.86rem;
    line-height: 1.6;
    max-height: 12rem;
    overflow: auto;
    padding: 0.5rem 0.65rem;
    border-radius: 0.35rem;
    background: var(--hwys-surface, #fff);
    border: 1px solid var(--hwys-border, #e2e8f0);
}

.hwys-post-cms-audit-list {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
    font-size: 0.84rem;
}

.hwys-post-cms-audit-list__item {
    padding: 0.35rem 0;
    border-top: 1px solid var(--hwys-border, #e2e8f0);
}

.hwys-post-cms-audit-list__item:first-child {
    border-top: 0;
}

.hwys-post-cms-pub-list__item--pinned {
    border-left: 3px solid var(--hwys-accent, #6366f1);
}

.hwys-post-cms-form__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

/* Simple Seven — 写真お任せオプション（ヒアリング各写真欄） */
.hwys-hwys-produce-option-wrap {
    margin: 0.65rem 0 0.25rem;
}

.hwys-hwys-produce-option {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    padding: 0.85rem 1rem;
    border-radius: 12px;
    border: 1px solid rgba(99, 102, 241, 0.22);
    background: linear-gradient(135deg, rgba(238, 242, 255, 0.95) 0%, rgba(255, 255, 255, 0.98) 100%);
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.hwys-hwys-produce-option:hover {
    border-color: rgba(99, 102, 241, 0.45);
    box-shadow: 0 2px 10px rgba(99, 102, 241, 0.08);
}

.hwys-hwys-produce-option:has(.hwys-hwys-produce-option__check:checked) {
    border-color: rgba(79, 70, 229, 0.55);
    background: linear-gradient(135deg, rgba(224, 231, 255, 0.98) 0%, rgba(255, 255, 255, 1) 100%);
    box-shadow: 0 2px 12px rgba(79, 70, 229, 0.1);
}

.hwys-hwys-produce-option__check {
    flex-shrink: 0;
    width: 1.05rem;
    height: 1.05rem;
    margin-top: 0.15rem;
    accent-color: #4f46e5;
}

.hwys-hwys-produce-option__body {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
}

.hwys-hwys-produce-option__title {
    font-size: 0.92rem;
    font-weight: 700;
    color: #312e81;
    line-height: 1.45;
}

.hwys-hwys-produce-option__hint {
    font-size: 0.82rem;
    color: #64748b;
    line-height: 1.55;
}

/* 社ロゴ・ファビコン — 視認性ガイドとイメージヒアリング */
.hwys-brand-mark-guide {
    margin: 0 0 1.25rem;
    padding: 1.1rem 1.15rem;
    border-radius: 14px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: linear-gradient(180deg, #fafbff 0%, #ffffff 100%);
}

.hwys-brand-mark-guide__lead {
    margin: 0 0 0.65rem;
    line-height: 1.65;
    color: #1e293b;
}

.hwys-brand-mark-guide__intro {
    margin: 0 0 1rem;
    line-height: 1.65;
    color: #334155;
    font-size: 0.95rem;
}

.hwys-brand-mark-guide__example {
    display: grid;
    grid-template-columns: minmax(160px, 220px) 1fr;
    gap: 1rem 1.25rem;
    align-items: start;
}

.hwys-brand-mark-guide__figures {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.hwys-brand-mark-guide__figure--hwys {
    padding-top: 0.15rem;
    border-top: 1px dashed rgba(15, 23, 42, 0.1);
}

@media (max-width: 720px) {
    .hwys-brand-mark-guide__example {
        grid-template-columns: 1fr;
    }
}

.hwys-brand-mark-guide__figure {
    margin: 0;
    text-align: center;
}

.hwys-brand-mark-guide__img {
    display: block;
    width: 100%;
    max-width: 200px;
    margin: 0 auto;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 4px 18px rgba(15, 23, 42, 0.08);
    image-rendering: -webkit-optimize-contrast;
}

.hwys-brand-mark-guide__caption {
    margin: 0.45rem 0 0;
    font-size: 0.78rem;
    line-height: 1.45;
}

.hwys-brand-mark-guide__list {
    margin: 0;
    padding-left: 1.15rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    line-height: 1.65;
    color: #334155;
    font-size: 0.92rem;
}

.hwys-brand-mark-guide__foot {
    margin: 0.85rem 0 0;
    font-size: 0.78rem;
    line-height: 1.55;
}

.hwys-brand-mark-fieldset {
    margin: 0 0 1.25rem;
}

.hwys-brand-mark-fieldset__intro {
    margin: 0 0 1rem;
    line-height: 1.6;
}

.hwys-brand-mark-field {
    margin: 0 0 1rem;
}

.hwys-brand-mark-field:last-child {
    margin-bottom: 0;
}

/* --- 運営フロー ①〜⑨ チェックリスト --- */
.hwys-workflow-ops {
    margin: 0 0 1.5rem;
    padding: 1rem 1.1rem 1.15rem;
    border: 1px solid var(--hwys-border, #e2e8f0);
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.95), #fff);
}

.hwys-workflow-ops__head {
    margin-bottom: 0.85rem;
}

.hwys-workflow-ops__title {
    margin: 0 0 0.35rem;
    font-size: 1.05rem;
}

.hwys-workflow-ops__wf {
    font-size: 0.82rem;
    font-weight: 500;
}

.hwys-workflow-ops__lead {
    margin: 0 0 0.45rem;
    font-size: 0.84rem;
}

.hwys-workflow-ops__locks {
    margin: 0.75rem 0 1rem;
}

.hwys-workflow-ops__alert {
    margin: 0.35rem 0 0;
    padding: 0.45rem 0.65rem;
    border-radius: 8px;
    background: rgba(245, 158, 11, 0.12);
    color: #92400e;
    font-size: 0.84rem;
    font-weight: 600;
}

.hwys-workflow-ops__next {
    margin: 0.45rem 0 0;
    font-size: 0.88rem;
}

.hwys-workflow-ops__next-link {
    font-weight: 700;
    color: #4338ca;
}

.hwys-workflow-ops__timeline {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.65rem;
}

.hwys-workflow-ops__phase {
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 0.55rem 0.7rem 0.65rem;
    background: #fff;
}

.hwys-workflow-ops__phase.is-current {
    border-color: rgba(67, 56, 202, 0.35);
    box-shadow: 0 0 0 1px rgba(67, 56, 202, 0.08);
    background: rgba(238, 242, 255, 0.45);
}

.hwys-workflow-ops__phase.is-done {
    opacity: 0.82;
}

.hwys-workflow-ops__phase-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.55rem;
    margin-bottom: 0.35rem;
}

.hwys-workflow-ops__phase-no {
    font-weight: 800;
    color: #4338ca;
}

.hwys-workflow-ops__phase-title {
    font-weight: 700;
}

.hwys-workflow-ops__phase-summary {
    font-size: 0.78rem;
}

.hwys-workflow-ops__phase-badge {
    margin-left: auto;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    background: rgba(16, 185, 129, 0.12);
    color: #047857;
}

.hwys-workflow-ops__phase-badge--now {
    background: rgba(67, 56, 202, 0.12);
    color: #4338ca;
}

.hwys-workflow-ops__checks {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.28rem;
}

.hwys-workflow-ops__check {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.45rem;
    font-size: 0.82rem;
}

.hwys-workflow-ops__check-mark {
    width: 1.1rem;
    text-align: center;
    font-weight: 700;
    color: #64748b;
}

.hwys-workflow-ops__check--done .hwys-workflow-ops__check-mark {
    color: #059669;
}

.hwys-workflow-ops__check--blocked {
    opacity: 0.65;
}

.hwys-workflow-ops__check-who {
    padding: 0.05rem 0.35rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 600;
    background: rgba(100, 116, 139, 0.12);
    color: #475569;
}

.hwys-workflow-ops__check-link {
    font-size: 0.78rem;
    color: #4338ca;
}

.hwys-workflow-ops__check-form {
    margin: 0;
}

.hwys-workflow-ops__revoke {
    margin-top: 0.75rem;
}

.hwys-index-chip--workflow {
    background: rgba(67, 56, 202, 0.1);
    color: #4338ca;
    border: 1px solid rgba(67, 56, 202, 0.15);
}

.hwys-index-chip--workflow-payment {
    background: rgba(245, 158, 11, 0.12);
    color: #b45309;
    border-color: rgba(245, 158, 11, 0.2);
}

/* --- 全体フロー ➀〜⑪（master_pipeline.php） --- */
.hwys-master-pipeline{margin:0 0 1.25rem;border:1px solid rgba(67,56,202,.18);border-radius:14px;background:linear-gradient(180deg,rgba(67,56,202,.05),#fff 48%);box-shadow:0 2px 10px rgba(67,56,202,.06)}
.hwys-master-pipeline--teaser,.hwys-master-pipeline--infra{margin-bottom:1rem}
.hwys-master-pipeline__summary{padding:.75rem 1rem;font-weight:700;cursor:pointer;list-style:none}
.hwys-master-pipeline__summary::-webkit-details-marker{display:none}
.hwys-master-pipeline__body{padding:0 1rem .85rem}
.hwys-master-pipeline__lead{margin:0 0 .65rem;font-size:.875rem;line-height:1.55}
.hwys-master-pipeline__macro{margin:0;padding-left:1.25rem;font-size:.875rem;line-height:1.65}
.hwys-master-pipeline__macro li{margin:.25rem 0}
.hwys-master-pipeline__more{margin:.65rem 0 0}
.hwys-master-pipeline__subhead{margin:1.25rem 0 .5rem;font-size:1rem}
.hwys-master-pipeline__guard-list{margin:0;padding-left:1.25rem;font-size:.875rem;line-height:1.6}
.hwys-master-pipeline__guard-list li{margin:.35rem 0}
.hwys-master-pipeline__phases{display:flex;flex-direction:column;gap:1rem}
.hwys-master-pipeline__phase{padding:.85rem 1rem;border:1px solid rgba(60,60,67,.1);border-radius:12px;background:#fff}
.hwys-master-pipeline__phase-title{margin:0 0 .35rem;font-size:1.05rem}
.hwys-master-pipeline__phase-no{color:#4338ca;font-weight:800}
.hwys-master-pipeline__steps{margin:.5rem 0 0;padding-left:1.2rem;font-size:.875rem}
.hwys-master-pipeline__step{margin:.45rem 0}
.hwys-master-pipeline__step-label{font-weight:700}
.hwys-master-pipeline__step-who{font-size:.78rem;color:#64748b}
.hwys-master-pipeline__step-detail{margin:.15rem 0 0;font-size:.8125rem}
.hwys-master-pipeline__checks{margin:0;padding:0;list-style:none;font-size:.875rem}
.hwys-master-pipeline__check{padding:.35rem 0;border-bottom:1px solid rgba(60,60,67,.08)}
.hwys-master-pipeline__check--done{color:#15803d}
.hwys-master-pipeline-page{max-width:52rem;margin:0 auto;padding-bottom:2rem}

.hwys-admin-token-panel {
    margin: 0 0 1rem;
    padding: 1rem 1.15rem;
    border: 1px solid rgba(245, 158, 11, 0.28);
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(245, 158, 11, 0.06), rgba(88, 86, 214, 0.04));
}

.hwys-admin-token-panel__title {
    margin: 0 0 0.35rem;
    font-weight: 800;
    font-size: 1rem;
}

.hwys-admin-token-panel__sub {
    margin: 1rem 0 0.35rem;
    font-size: 0.92rem;
}

.hwys-admin-token-form {
    display: grid;
    gap: 0.45rem;
    max-width: 28rem;
    margin: 0.75rem 0;
}

.hwys-admin-token-form label {
    font-size: 0.88rem;
    font-weight: 600;
}

.hwys-admin-token-form select,
.hwys-admin-token-form input[type="text"] {
    width: 100%;
    padding: 0.45rem 0.55rem;
    border: 1px solid rgba(15, 23, 42, 0.15);
    border-radius: 8px;
}

.hwys-admin-token-history code {
    font-size: 0.82rem;
}

.hwys-admin-token-once {
    margin: 0 0 1rem;
    padding: 1rem 1.15rem;
    border: 2px solid rgba(52, 199, 89, 0.45);
    border-radius: 12px;
    background: rgba(52, 199, 89, 0.08);
}

.hwys-admin-token-once__title {
    margin: 0 0 0.35rem;
    font-weight: 800;
    color: #166534;
}

.hwys-admin-token-once__row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    margin-top: 0.5rem;
}

.hwys-handoff-reissue {
    margin: 0.75rem 0 0;
    font-size: 0.88rem;
}

/* --- 顧客ヒアリング編集ロック（運営 edit_client） --- */
.hwys-hearing-lock-panel {
    margin: 1rem 0 1.25rem;
    padding: 1rem 1.15rem 1.15rem;
    border: 1px solid rgba(60, 60, 67, 0.14);
    border-radius: 16px;
    background: linear-gradient(180deg, #fafbff 0%, #fff 100%);
}

.hwys-hearing-lock-panel--in-workflow {
    margin: 0;
    padding: 0.85rem 1rem 1rem;
    border-color: rgba(0, 122, 255, 0.22);
    background: linear-gradient(180deg, rgba(0, 122, 255, 0.04) 0%, #fff 100%);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.65);
}

.hwys-hearing-lock-panel--in-workflow .hwys-hearing-lock-panel__title {
    font-size: 0.98rem;
}

.hwys-hearing-lock-panel__title {
    margin: 0 0 0.35rem;
    font-size: 1.05rem;
}

.hwys-hearing-lock-panel__lead {
    margin: 0 0 0.65rem;
    font-size: 0.86rem;
    line-height: 1.55;
}

.hwys-hearing-lock-panel__summary {
    margin: 0;
    padding: 0.55rem 0.75rem;
    border-radius: 10px;
    font-size: 0.9rem;
}

.hwys-hearing-lock-panel__summary--ok {
    background: rgba(52, 199, 89, 0.12);
    border: 1px solid rgba(52, 199, 89, 0.35);
}

.hwys-hearing-lock-panel__summary--locked {
    background: rgba(255, 149, 0, 0.1);
    border: 1px solid rgba(255, 149, 0, 0.35);
}

.hwys-hearing-lock-panel__preview {
    margin: 0.65rem 0 0;
}

.hwys-hearing-lock-list {
    list-style: none;
    margin: 0.85rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.hwys-hearing-lock-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem 1rem;
    padding: 0.7rem 0.85rem;
    border-radius: 12px;
    border: 1px solid rgba(60, 60, 67, 0.1);
    background: #fff;
}

.hwys-hearing-lock-row--on {
    border-color: rgba(255, 149, 0, 0.35);
    background: rgba(255, 149, 0, 0.04);
}

.hwys-hearing-lock-row--na {
    opacity: 0.72;
}

.hwys-hearing-lock-row__text {
    flex: 1 1 12rem;
    min-width: 0;
}

.hwys-hearing-lock-row__title {
    display: block;
    font-weight: 700;
    font-size: 0.92rem;
}

.hwys-hearing-lock-row__hint {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.8rem;
    line-height: 1.45;
}

.hwys-hearing-lock-row__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.65rem;
}

.hwys-hearing-lock-row__revoke-form {
    margin: 0;
}

.hwys-hearing-lock-badge {
    display: inline-block;
    padding: 0.15rem 0.45rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    color: #636366;
    background: rgba(60, 60, 67, 0.08);
}

.hwys-hearing-lock-switch-label {
    display: inline-block;
    min-width: 2.1rem;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-align: center;
    color: #636366;
}

.hwys-hearing-lock-switch-label--on {
    color: #c93400;
}

body.hwys-page--edit button.hwys-hearing-lock-switch,
body.hwys-page--ops button.hwys-hearing-lock-switch {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0 !important;
    min-height: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: inherit !important;
    font-weight: 400 !important;
    cursor: pointer;
}

body.hwys-page--edit button.hwys-hearing-lock-switch.is-disabled,
body.hwys-page--ops button.hwys-hearing-lock-switch.is-disabled {
    cursor: not-allowed;
    opacity: 0.72;
}

.hwys-hearing-lock-switch__track {
    display: block;
    width: 2.85rem;
    height: 1.6rem;
    border-radius: 999px;
    background: rgba(60, 60, 67, 0.2);
    transition: background 0.18s ease;
    position: relative;
    flex-shrink: 0;
}

body.hwys-page--edit button.hwys-hearing-lock-switch[aria-checked="true"] .hwys-hearing-lock-switch__track,
body.hwys-page--ops button.hwys-hearing-lock-switch[aria-checked="true"] .hwys-hearing-lock-switch__track {
    background: #ff9500;
}

body.hwys-page--edit button.hwys-hearing-lock-switch.is-disabled[aria-checked="true"] .hwys-hearing-lock-switch__track,
body.hwys-page--ops button.hwys-hearing-lock-switch.is-disabled[aria-checked="true"] .hwys-hearing-lock-switch__track {
    background: rgba(255, 149, 0, 0.55);
}

.hwys-hearing-lock-switch__thumb {
    position: absolute;
    top: 0.17rem;
    left: 0.17rem;
    width: 1.26rem;
    height: 1.26rem;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
    transition: transform 0.18s ease;
}

body.hwys-page--edit button.hwys-hearing-lock-switch[aria-checked="true"] .hwys-hearing-lock-switch__thumb,
body.hwys-page--ops button.hwys-hearing-lock-switch[aria-checked="true"] .hwys-hearing-lock-switch__thumb {
    transform: translateX(1.22rem);
}

.hwys-hearing-lock-dialog {
    max-width: min(28rem, calc(100vw - 2rem));
    padding: 0;
    border: 0;
    border-radius: 16px;
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.18);
}

.hwys-hearing-lock-dialog::backdrop {
    background: rgba(0, 0, 0, 0.35);
}

.hwys-hearing-lock-dialog__form {
    padding: 1.1rem 1.15rem 1rem;
}

.hwys-hearing-lock-dialog__title {
    margin: 0 0 0.5rem;
    font-size: 1rem;
}

.hwys-hearing-lock-dialog__body {
    margin: 0 0 1rem;
    font-size: 0.88rem;
    line-height: 1.55;
}

/* --- ヒアリング更新 → HP 反映手順（運営） --- */
.hwys-hp-pipeline {
    margin: 0 0 1rem;
    padding: 0.65rem 0.85rem 0.75rem;
    border: 1px dashed rgba(60, 60, 67, 0.22);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.7);
}

.hwys-hp-pipeline__summary {
    cursor: pointer;
    font-weight: 700;
    font-size: 0.92rem;
}

.hwys-hp-pipeline__body {
    margin-top: 0.55rem;
}

.hwys-hp-pipeline__auto {
    margin: 0 0 0.5rem;
    padding: 0.45rem 0.6rem;
    border-radius: 8px;
    background: rgba(0, 122, 255, 0.06);
    border: 1px solid rgba(0, 122, 255, 0.2);
    font-size: 0.86rem;
    line-height: 1.55;
}

.hwys-hp-pipeline__cmds-details {
    margin-top: 0.5rem;
    font-size: 0.86rem;
}

.hwys-hp-pipeline__alert {
    margin: 0 0 0.5rem;
    padding: 0.45rem 0.6rem;
    border-radius: 8px;
    background: rgba(52, 199, 89, 0.1);
    border: 1px solid rgba(52, 199, 89, 0.35);
    font-size: 0.86rem;
}

.hwys-hp-pipeline__steps {
    margin: 0.35rem 0 0.65rem;
    padding-left: 1.2rem;
    font-size: 0.86rem;
    line-height: 1.55;
}

.hwys-hp-pipeline__step {
    margin-bottom: 0.25rem;
}

.hwys-hp-pipeline__pre {
    margin: 0.35rem 0;
    padding: 0.55rem 0.65rem;
    border-radius: 8px;
    background: #1c1c1e;
    color: #f5f5f7;
    font-size: 0.78rem;
    line-height: 1.5;
    overflow-x: auto;
    white-space: pre-wrap;
    word-break: break-word;
}

.hwys-hp-pipeline__pre code {
    display: block;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font-family: ui-monospace, "Cascadia Code", "Consolas", monospace;
    font-size: inherit;
    white-space: pre-wrap;
    word-break: break-word;
}

.hwys-hearing-reedit-hint {
    padding: 0.5rem 0.65rem;
    border-radius: 8px;
    background: rgba(0, 122, 255, 0.08);
    border: 1px solid rgba(0, 122, 255, 0.2);
}

.hwys-hearing-lock-dialog__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

/* —— 運営：決済・お支払いパネル —— */
.hwys-ops-payment-panel {
    margin: 0 0 2rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.hwys-ops-payment-glance {
    padding: 1rem 1.05rem 1.05rem;
    border-radius: 16px;
    border: 1px solid rgba(88, 86, 214, 0.18);
    background: linear-gradient(165deg, rgba(88, 86, 214, 0.06) 0%, rgba(255, 255, 255, 0.98) 42%);
    box-shadow: 0 8px 28px rgba(88, 86, 214, 0.08);
}

.hwys-ops-payment-glance__head {
    margin-bottom: 0.75rem;
}

.hwys-ops-payment-glance__title {
    margin: 0 0 0.25rem;
    font-family: var(--hwys-font-display);
    font-size: 1.12rem;
    font-weight: 800;
    letter-spacing: -0.02em;
}

.hwys-ops-payment-glance__lead {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.5;
}

.hwys-ops-payment-glance__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
    gap: 0.55rem;
}

.hwys-ops-payment-glance__item {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    padding: 0.65rem 0.7rem;
    border-radius: 12px;
    border: 1px solid rgba(60, 60, 67, 0.1);
    background: rgba(255, 255, 255, 0.94);
    text-decoration: none;
    color: inherit;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

a.hwys-ops-payment-glance__item--link:hover {
    border-color: rgba(88, 86, 214, 0.35);
    box-shadow: 0 4px 14px rgba(88, 86, 214, 0.12);
    transform: translateY(-1px);
}

.hwys-ops-payment-glance__item--ok {
    border-color: rgba(5, 150, 105, 0.32);
    background: linear-gradient(145deg, rgba(5, 150, 105, 0.1) 0%, #fff 58%);
}

.hwys-ops-payment-glance__item--warn {
    border-color: rgba(245, 158, 11, 0.38);
    background: linear-gradient(145deg, rgba(245, 158, 11, 0.12) 0%, #fff 58%);
}

.hwys-ops-payment-glance__item--progress {
    border-color: rgba(88, 86, 214, 0.32);
    background: linear-gradient(145deg, rgba(88, 86, 214, 0.09) 0%, #fff 58%);
}

.hwys-ops-payment-glance__item--lock {
    border-color: rgba(239, 68, 68, 0.28);
    background: linear-gradient(145deg, rgba(239, 68, 68, 0.07) 0%, #fff 58%);
}

.hwys-ops-payment-glance__icon {
    flex-shrink: 0;
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 8px;
}

.hwys-ops-payment-glance__icon.hwys-ops-key-icon::after {
    width: 1rem;
    height: 1rem;
}

.hwys-ops-payment-glance__body {
    display: flex;
    flex-direction: column;
    gap: 0.08rem;
    min-width: 0;
}

.hwys-ops-payment-glance__label {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    color: #64748b;
}

.hwys-ops-payment-glance__hint {
    font-size: 0.68rem;
    color: #94a3b8;
    line-height: 1.3;
}

.hwys-ops-payment-glance__value {
    font-size: 0.88rem;
    font-weight: 800;
    line-height: 1.35;
    color: #1e293b;
}

.hwys-ops-payment-glance__meta {
    font-size: 0.68rem;
    color: #64748b;
    line-height: 1.3;
}

.hwys-ops-payment-section {
    padding: 1rem 1.05rem;
    border-radius: 16px;
    border: 1px solid #e2e8f0;
    background: #fff;
    box-shadow: 0 6px 24px rgba(15, 23, 42, 0.05);
}

.hwys-ops-payment-section__head {
    margin-bottom: 0.85rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.22);
}

.hwys-ops-payment-section__title {
    margin: 0 0 0.2rem;
    font-size: 1.02rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: #1e293b;
}

.hwys-ops-payment-section__lead {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.5;
}

.hwys-ops-payment-section .hwys-zeus-ops {
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.hwys-ops-payment-section .hwys-zeus-ops__header {
    display: none;
}

.hwys-ops-payment-panel__footer {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    margin: 0;
    padding: 0.75rem 0.9rem;
    border-radius: 12px;
    border: 1px dashed rgba(52, 199, 89, 0.35);
    background: rgba(52, 199, 89, 0.05);
}

.hwys-ops-payment-panel__footer-icon {
    flex-shrink: 0;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 8px;
}

.hwys-ops-payment-panel__footer-icon.hwys-ops-key-icon::after {
    width: 0.95rem;
    height: 0.95rem;
}

.hwys-ops-payment-panel__edit-link {
    margin: 0;
    font-size: 0.86rem;
    line-height: 1.55;
}

.hwys-ops-payment-panel__title {
    margin: 0 0 0.35rem;
    font-family: var(--hwys-font-display);
    font-size: 1.35rem;
    letter-spacing: -0.02em;
}

.hwys-ops-payment-panel__lead {
    margin: 0 0 1rem;
    line-height: 1.6;
}

.hwys-ops-payment-panel__gate {
    margin: 0 0 1.25rem;
    padding: 0.65rem 0.85rem;
    border-radius: 10px;
    border: 1px solid rgba(5, 150, 105, 0.22);
    background: rgba(5, 150, 105, 0.06);
    line-height: 1.55;
}

.hwys-payment-data-hint {
    margin: -0.35rem 0 0.85rem;
}

/* —— ゼウス決済（運営） —— */
.hwys-zeus-ops {
    margin: 0 0 1.5rem;
    padding: 1.15rem 1.25rem;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 28px rgba(15, 23, 42, 0.05);
}

.hwys-zeus-ops__header {
    margin-bottom: 1rem;
}

.hwys-zeus-ops__title {
    margin: 0 0 0.35rem;
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.hwys-zeus-ops__lead {
    margin: 0;
    line-height: 1.55;
    font-size: 0.9rem;
}

.hwys-zeus-ops__cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 0.85rem;
    margin: 0 0 1rem;
}

.hwys-zeus-ops__card {
    margin: 0;
    padding: 0.85rem 0.95rem;
    border-radius: 12px;
    border: 1px solid #e2e8f0;
    background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
}

.hwys-zeus-ops__card-icon {
    flex-shrink: 0;
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 9px;
}

.hwys-zeus-ops__card-icon.hwys-ops-key-icon::after {
    width: 1.05rem;
    height: 1.05rem;
}

.hwys-zeus-ops__card-body {
    flex: 1;
    min-width: 0;
}

.hwys-zeus-ops__flag {
    display: inline-block;
    padding: 0.12rem 0.5rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
}

.hwys-zeus-ops__flag--warn {
    background: rgba(245, 158, 11, 0.16);
    color: #b45309;
}

.hwys-zeus-ops__card--ok {
    border-color: rgba(5, 150, 105, 0.35);
    background: linear-gradient(180deg, rgba(5, 150, 105, 0.08) 0%, #fff 100%);
}

.hwys-zeus-ops__card--pending {
    border-color: rgba(245, 158, 11, 0.35);
    background: linear-gradient(180deg, rgba(245, 158, 11, 0.08) 0%, #fff 100%);
}

.hwys-zeus-ops__card-title {
    margin: 0 0 0.45rem;
    font-size: 0.88rem;
    font-weight: 700;
    color: #334155;
}

.hwys-zeus-ops__card-status {
    margin: 0 0 0.35rem;
}

.hwys-zeus-ops__card-meta {
    margin: 0 0 0.25rem;
    font-size: 0.84rem;
    line-height: 1.45;
}

.hwys-zeus-ops__card-amount {
    margin: 0.35rem 0 0;
    font-size: 0.9rem;
    font-weight: 700;
}

.hwys-zeus-ops__meta {
    margin: 0 0 0.85rem;
    padding: 0.65rem 0.75rem;
    border-radius: 10px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}

.hwys-zeus-ops__meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.75rem;
    align-items: baseline;
}

.hwys-zeus-ops__meta-row dt {
    margin: 0;
    font-weight: 600;
    font-size: 0.84rem;
}

.hwys-zeus-ops__meta-row dd {
    margin: 0;
    font-size: 0.84rem;
}

.hwys-zeus-ops__links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0 0 1rem;
}

.hwys-zeus-ops__history-title {
    margin: 0 0 0.65rem;
    font-size: 0.98rem;
    font-weight: 700;
}

.hwys-zeus-ops__table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
}

.hwys-zeus-ops__table {
    width: 100%;
    min-width: 640px;
    margin: 0;
    font-size: 0.8125rem;
    border-collapse: collapse;
}

.hwys-zeus-ops__table th,
.hwys-zeus-ops__table td {
    padding: 0.55rem 0.65rem;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid #e2e8f0;
}

.hwys-zeus-ops__table thead th {
    background: #f1f5f9;
    font-weight: 700;
    white-space: nowrap;
}

.hwys-zeus-ops__mono code {
    font-size: 0.75rem;
    word-break: break-all;
}

.hwys-zeus-ops__status--ok { color: #15803d; font-weight: 600; }
.hwys-zeus-ops__status--warn { color: #b45309; font-weight: 600; }
.hwys-zeus-ops__status--muted { color: #64748b; }

.hwys-zeus-ops__note {
    margin: 0.75rem 0 0;
    font-size: 0.8125rem;
    line-height: 1.55;
}

@media (max-width: 720px) {
    .hwys-zeus-ops__table thead {
        display: none;
    }

    .hwys-zeus-ops__table,
    .hwys-zeus-ops__table tbody,
    .hwys-zeus-ops__table tr,
    .hwys-zeus-ops__table td {
        display: block;
        min-width: 0;
        width: 100%;
    }

    .hwys-zeus-ops__table tr {
        padding: 0.65rem 0.75rem;
        border-bottom: 1px solid #e2e8f0;
    }

    .hwys-zeus-ops__table td::before {
        content: attr(data-label);
        display: block;
        font-weight: 700;
        font-size: 0.72rem;
        color: #64748b;
        margin-bottom: 0.15rem;
    }
}

/* —— ゼウス月次プレイブック（運営・決済タブ） —— */
.hwys-zeus-playbook {
    margin: 0;
    padding: 1rem 1.15rem;
    border-radius: 14px;
    border: 1px solid #e2e8f0;
    background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
}

.hwys-zeus-playbook--collapsible {
    padding: 0;
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: #f8fafc;
}

.hwys-zeus-playbook--collapsible > .hwys-zeus-playbook__inner {
    padding: 0 1rem 1rem;
}

.hwys-zeus-playbook__summary {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.75rem 1rem;
    cursor: pointer;
    list-style: none;
    font-weight: 700;
}

.hwys-zeus-playbook__summary::-webkit-details-marker {
    display: none;
}

.hwys-zeus-playbook__summary-icon {
    flex-shrink: 0;
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 8px;
}

.hwys-zeus-playbook__summary-body {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.hwys-zeus-playbook__summary-title {
    font-size: 0.92rem;
    font-weight: 800;
    color: #1e293b;
}

.hwys-zeus-playbook__summary-hint {
    font-size: 0.76rem;
    font-weight: 500;
}

.hwys-zeus-playbook__title {
    margin: 0 0 0.35rem;
    font-size: 1rem;
    font-weight: 800;
    color: #1e293b;
}

.hwys-zeus-playbook__lead {
    margin: 0 0 0.85rem;
    font-size: 0.84rem;
    line-height: 1.55;
}

.hwys-zeus-playbook__timeline {
    list-style: none;
    margin: 0 0 1rem;
    padding: 0;
    display: grid;
    gap: 0.5rem;
}

@media (min-width: 768px) {
    .hwys-zeus-playbook__timeline {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.hwys-zeus-playbook__step {
    padding: 0.75rem 0.85rem;
    border-radius: 12px;
    border: 1px solid #e2e8f0;
    background: #fff;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.hwys-zeus-playbook__step--accent {
    border-color: rgba(88, 86, 214, 0.35);
    background: #faf9ff;
}

.hwys-zeus-playbook__step--debit {
    border-color: rgba(0, 122, 255, 0.28);
    background: linear-gradient(145deg, rgba(0, 122, 255, 0.06) 0%, #fff 60%);
}

.hwys-zeus-playbook__step--ng {
    border-color: rgba(245, 158, 11, 0.35);
    background: linear-gradient(145deg, rgba(245, 158, 11, 0.08) 0%, #fff 60%);
}

.hwys-zeus-playbook__step--card {
    border-color: rgba(5, 150, 105, 0.28);
    background: linear-gradient(145deg, rgba(5, 150, 105, 0.06) 0%, #fff 60%);
}

.hwys-zeus-playbook__when {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    color: #5856d6;
    text-transform: uppercase;
}

.hwys-zeus-playbook__step strong {
    font-size: 0.9rem;
    color: #1e293b;
}

.hwys-zeus-playbook__step .muted {
    font-size: 0.8rem;
    line-height: 1.45;
}

.hwys-zeus-playbook__grid {
    display: grid;
    gap: 0.65rem;
    margin-bottom: 0.85rem;
}

@media (min-width: 640px) {
    .hwys-zeus-playbook__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.hwys-zeus-playbook__card {
    padding: 0.75rem 0.85rem;
    border-radius: 12px;
    border: 1px solid #e2e8f0;
    background: #fff;
}

.hwys-zeus-playbook__card--central {
    border-color: rgba(88, 86, 214, 0.22);
    background: linear-gradient(145deg, rgba(88, 86, 214, 0.05) 0%, #fff 55%);
}

.hwys-zeus-playbook__card--zeus {
    border-color: rgba(0, 122, 255, 0.22);
    background: linear-gradient(145deg, rgba(0, 122, 255, 0.05) 0%, #fff 55%);
}

.hwys-zeus-playbook__card h4 {
    margin: 0 0 0.45rem;
    font-size: 0.84rem;
    font-weight: 800;
    color: #334155;
}

.hwys-zeus-playbook__links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.hwys-zeus-menu-ref {
    margin: 0 0 1.25rem;
    padding: 0.75rem 0.9rem;
    border-radius: 12px;
    border: 1px dashed #cbd5e1;
    background: #fafafa;
}

.hwys-zeus-menu-ref > summary {
    cursor: pointer;
    font-weight: 700;
    font-size: 0.875rem;
    color: #334155;
}

.hwys-zeus-menu-ref__table {
    margin-top: 0.75rem;
}

/* —— 口座振替依頼書（運営） —— */
.hwys-debit-mandate-ops {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.hwys-debit-progress {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.35rem;
}

@media (max-width: 640px) {
    .hwys-debit-progress {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.hwys-debit-progress__step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    padding: 0.55rem 0.35rem;
    border-radius: 10px;
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    text-align: center;
}

.hwys-debit-progress__step--done {
    border-color: rgba(5, 150, 105, 0.32);
    background: rgba(5, 150, 105, 0.08);
}

.hwys-debit-progress__step--current {
    border-color: rgba(88, 86, 214, 0.38);
    background: rgba(88, 86, 214, 0.1);
    box-shadow: 0 0 0 2px rgba(88, 86, 214, 0.12);
}

.hwys-debit-progress__marker {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.65rem;
    height: 1.65rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
    background: #e2e8f0;
    color: #475569;
}

.hwys-debit-progress__step--done .hwys-debit-progress__marker {
    background: #059669;
    color: #fff;
}

.hwys-debit-progress__step--current .hwys-debit-progress__marker {
    background: #5856d6;
    color: #fff;
}

.hwys-debit-progress__label {
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.3;
    color: #334155;
}

.hwys-debit-mandate-ops__status-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
}

.hwys-debit-mandate-ops__status-pill {
    display: inline-block;
    padding: 0.28rem 0.65rem;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 800;
}

.hwys-debit-mandate-ops__status-pill--ok {
    background: rgba(5, 150, 105, 0.14);
    color: #047857;
}

.hwys-debit-mandate-ops__status-pill--progress {
    background: rgba(88, 86, 214, 0.12);
    color: #4338ca;
}

.hwys-debit-mandate-ops__status-pill--warn {
    background: rgba(245, 158, 11, 0.14);
    color: #b45309;
}

.hwys-debit-mandate-ops__chip {
    font-size: 0.78rem;
}

.hwys-debit-mandate-ops__lead {
    margin: 0;
    font-size: 0.84rem;
    line-height: 1.55;
}

.hwys-debit-mandate-ops__alert {
    margin: 0;
    padding: 0.65rem 0.8rem;
    border-radius: 10px;
}

.hwys-debit-mandate-ops__summary {
    margin: 0;
    display: grid;
    gap: 0.35rem;
}

.hwys-debit-mandate-ops__summary-row {
    display: grid;
    grid-template-columns: minmax(5.5rem, 8rem) 1fr;
    gap: 0.5rem;
    padding: 0.45rem 0.55rem;
    border-radius: 8px;
    background: #f8fafc;
    border: 1px solid #eef2f7;
}

.hwys-debit-mandate-ops__summary-row dt {
    margin: 0;
    font-size: 0.76rem;
    font-weight: 700;
    color: #64748b;
}

.hwys-debit-mandate-ops__summary-row dd {
    margin: 0;
    font-size: 0.82rem;
    word-break: break-all;
}

/* —— フロー内ジャンプナビ —— */
.hwys-admin-hub__jump {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0 0 1rem;
}

.hwys-admin-hub__jump-link {
    display: inline-flex;
    align-items: center;
    padding: 0.35rem 0.65rem;
    border-radius: 999px;
    border: 1px solid #e2e8f0;
    background: #fff;
    font-size: 0.8125rem;
    font-weight: 600;
    text-decoration: none;
    color: #334155;
}

.hwys-admin-hub__jump-link:hover {
    border-color: #6366f1;
    color: #4338ca;
}

.hwys-admin-hub__jump-link--accent {
    border-color: rgba(5, 150, 105, 0.45);
    background: rgba(5, 150, 105, 0.08);
    color: #047857;
}

.hwys-admin-inbox-panel__lead {
    margin: 0 0 0.85rem;
    font-size: 0.875rem;
    line-height: 1.55;
}

.hwys-admin-hub__ops-body-fold summary {
    cursor: pointer;
    font-size: 0.8125rem;
    margin-top: 0.25rem;
}

/* —— 投稿履歴（カテゴリ別） —— */
.hwys-post-cms-history {
    margin: 0 0 1.25rem;
    padding: 1rem 1.1rem;
    border-radius: 14px;
    border: 1px solid #e2e8f0;
    background: #fff;
}

.hwys-post-cms-history__title {
    margin: 0 0 0.35rem;
    font-size: 1rem;
    font-weight: 700;
}

.hwys-post-cms-history__lead {
    margin: 0 0 0.85rem;
    font-size: 0.875rem;
}

.hwys-post-cms-cat-group {
    margin: 0 0 1rem;
}

.hwys-post-cms-cat-group:last-child {
    margin-bottom: 0;
}

.hwys-post-cms-cat-group__title {
    margin: 0 0 0.5rem;
    font-size: 0.92rem;
    font-weight: 700;
}

.hwys-post-cms-pub-list__snippet {
    margin: 0.35rem 0 0;
    font-size: 0.8125rem;
    line-height: 1.45;
}

.hwys-post-cms-pub-list__title {
    display: inline;
}

.hwys-post-cms-settings {
    margin-top: 0.5rem;
    padding: 0.65rem 0.85rem;
    border-radius: 12px;
    border: 1px dashed #cbd5e1;
    background: rgba(248, 250, 252, 0.8);
}

.hwys-post-cms-settings__summary {
    cursor: pointer;
    font-weight: 700;
    color: #475569;
}

.hwys-post-cms-settings .hwys-post-cms-grid {
    margin-top: 0.85rem;
}

/* —— 顧客：口座振替フロー —— */
.hwys-debit-customer-flow {
    margin: 1.25rem 0;
    padding: 1rem 1.1rem;
    border-radius: 14px;
    border: 1px solid rgba(5, 150, 105, 0.28);
    background: linear-gradient(165deg, #f0fdf4 0%, #fff 55%);
}

.hwys-debit-customer-flow__title {
    margin: 0 0 0.35rem;
    font-size: 1.05rem;
    font-weight: 700;
    color: #065f46;
}

.hwys-debit-customer-flow__status {
    margin: 0 0 0.85rem;
    font-size: 0.9rem;
    line-height: 1.55;
    color: #047857;
    font-weight: 600;
}

.hwys-debit-customer-flow__actions {
    margin: 0.85rem 0 0;
}

.hwys-pay-steps--debit .hwys-pay-steps__hint {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.8125rem;
    font-weight: 400;
}

/* —— 運営：Xserver Webmail —— */
.hwys-mail-ops-subnav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0 0 1.1rem;
    padding: 0.25rem;
    border-radius: 12px;
    background: rgba(60, 60, 67, 0.06);
}

.hwys-mail-ops-subnav__link {
    display: inline-flex;
    align-items: center;
    padding: 0.45rem 0.85rem;
    border-radius: 10px;
    font-size: 0.875rem;
    font-weight: 600;
    color: #3a3a3c;
    text-decoration: none;
}

.hwys-mail-ops-subnav__link.is-active {
    background: #fff;
    color: #5856d6;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
}

.hwys-webmail-main {
    max-width: none;
}

.hwys-webmail-layout {
    display: grid;
    grid-template-columns: minmax(240px, 280px) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
    min-height: calc(100vh - 12rem);
}

.hwys-webmail-side {
    padding: 1rem;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    background: #f8fafc;
}

.hwys-webmail-side__title {
    margin: 0 0 0.35rem;
    font-size: 1rem;
}

.hwys-webmail-side__lead {
    margin: 0 0 0.75rem;
    font-size: 0.8125rem;
    line-height: 1.5;
}

.hwys-webmail-side__dl {
    margin: 0 0 0.75rem;
    font-size: 0.875rem;
}

.hwys-webmail-side__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.hwys-webmail-side__settings {
    margin-top: 0.5rem;
    font-size: 0.875rem;
}

.hwys-webmail-side__settings summary {
    cursor: pointer;
    font-weight: 600;
    color: #5856d6;
}

.hwys-webmail-settings-form {
    margin-top: 0.65rem;
}

.hwys-webmail-frame-wrap {
    min-height: calc(100vh - 12rem);
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
}

.hwys-webmail-frame {
    display: block;
    width: 100%;
    min-height: calc(100vh - 12rem);
    border: 0;
    background: #fff;
}

.hwys-webmail-embed-fallback,
.hwys-webmail-embed-off {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    min-height: calc(100vh - 12rem);
    padding: 2rem 1.25rem;
    text-align: center;
}

.hwys-webmail-footnote {
    margin-top: 0.85rem;
    font-size: 0.8125rem;
}

@media (max-width: 900px) {
    .hwys-webmail-layout {
        grid-template-columns: 1fr;
    }

    .hwys-webmail-frame,
    .hwys-webmail-frame-wrap,
    .hwys-webmail-embed-fallback,
    .hwys-webmail-embed-off {
        min-height: 70vh;
    }
}

