@font-face{font-family:kanit;src:url(../media/Kanit_Light-s.p.13zmsnokgd.t..ttf)format("truetype");font-display:swap;font-weight:300;font-style:normal}@font-face{font-family:kanit;src:url(../media/Kanit_Regular-s.p.0-s-.uq_t.82j.ttf)format("truetype");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:kanit;src:url(../media/Kanit_Medium-s.p.0opzy0-x~koh6.ttf)format("truetype");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:kanit;src:url(../media/Kanit_SemiBold-s.p.0hvnlb.jb-sm1.ttf)format("truetype");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:kanit;src:url(../media/Kanit_Bold-s.p.000g733ntnp88.ttf)format("truetype");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:kanit Fallback;src:local(Arial);ascent-override:106.73%;descent-override:38.32%;line-gap-override:0.0%;size-adjust:103.07%}.kanit_aa69b5f8-module__glMXWG__className{font-family:kanit,kanit Fallback}.kanit_aa69b5f8-module__glMXWG__variable{--font-kanit:"kanit", "kanit Fallback"}
:root{--jfo-brand:#4b3278;--jfo-brand-deep:#352354;--jfo-brand-light:#5d3f8e;--jfo-accent:#c59c43;--jfo-accent-light:#ffd94a;--jfo-accent-dark:#8a681a;--jfo-surface-page:#fcfbfc;--jfo-surface-panel:#fff;--jfo-surface-muted:#f4f4f6;--jfo-surface-lilac:#eae6f2;--jfo-border:#c6c0d5;--jfo-border-subtle:#e4dfec;--jfo-border-strong:#9c91b8;--jfo-text-heading:#4b3278;--jfo-text:#1f1f1f;--jfo-text-muted:#64748b;--jfo-text-subtle:#94a3b8;--jfo-text-inverse:#fff;--jfo-success:#10b981;--jfo-success-text:#065f46;--jfo-success-surface:#e8f7f1;--jfo-warning:#f59e0b;--jfo-warning-text:#7a4d00;--jfo-warning-surface:#fff4d6;--jfo-danger:#ef4444;--jfo-danger-text:#8a1f17;--jfo-danger-surface:#fdeaea;--jfo-info:#3b82f6;--jfo-info-text:#1d4ed8;--jfo-info-surface:#eaf2ff;--jfo-focus:#c59c43;--jfo-font-family:var(--font-kanit), "Kanit", "Noto Sans Thai", "Noto Sans", system-ui, sans-serif;--jfo-font-display-size:2.25rem;--jfo-font-display-line-height:2.75rem;--jfo-font-display-weight:600;--jfo-font-heading-size:1.875rem;--jfo-font-heading-line-height:2.375rem;--jfo-font-heading-weight:600;--jfo-font-h1-size:1.875rem;--jfo-font-h1-line-height:2.375rem;--jfo-font-h1-weight:600;--jfo-font-title-size:1.5rem;--jfo-font-title-line-height:2rem;--jfo-font-title-weight:600;--jfo-font-h2-size:1.5rem;--jfo-font-h2-line-height:2rem;--jfo-font-h2-weight:600;--jfo-font-h3-size:1.25rem;--jfo-font-h3-line-height:1.75rem;--jfo-font-h3-weight:600;--jfo-font-subtitle-size:1.125rem;--jfo-font-subtitle-line-height:1.625rem;--jfo-font-subtitle-weight:500;--jfo-font-body-size:1rem;--jfo-font-body-line-height:1.5rem;--jfo-font-body-weight:400;--jfo-font-body-sm-size:.9375rem;--jfo-font-body-sm-line-height:1.375rem;--jfo-font-label-size:.875rem;--jfo-font-label-line-height:1.25rem;--jfo-font-label-weight:500;--jfo-font-caption-size:.8125rem;--jfo-font-caption-line-height:1.125rem;--jfo-font-footnote-size:.75rem;--jfo-font-footnote-line-height:1rem;--jfo-font-strong-weight:600;--jfo-radius-xs:4px;--jfo-radius-sm:6px;--jfo-radius-md:8px;--jfo-radius-lg:12px;--jfo-radius-xl:16px;--jfo-radius-pill:999px;--jfo-motion-fast:.12s;--jfo-motion-base:.2s;--jfo-motion-slow:.3s;--jfo-ease-standard:cubic-bezier(.2, 0, 0, 1);--jfo-ease-emphasized:cubic-bezier(.16, 1, .3, 1)}
:root{--admin-shadow-soft:0 18px 46px color-mix(in srgb, var(--jfo-brand-deep) 10%, transparent);--admin-shadow-focus:0 0 0 3px color-mix(in srgb, var(--jfo-focus) 32%, transparent);--admin-grid-line:color-mix(in srgb, var(--jfo-brand) 7%, transparent);--admin-sidebar-text:color-mix(in srgb, var(--jfo-text-inverse) 88%, transparent);--admin-sidebar-muted:color-mix(in srgb, var(--jfo-text-inverse) 68%, transparent);--admin-panel-tint:color-mix(in srgb, var(--jfo-surface-lilac) 38%, var(--jfo-surface-panel))}*{box-sizing:border-box}html{background:var(--jfo-surface-page);min-height:100%}body{min-height:100%;color:var(--jfo-text);background:linear-gradient(90deg, var(--admin-grid-line) 1px, transparent 1px), linear-gradient(180deg, var(--admin-grid-line) 1px, transparent 1px), var(--jfo-surface-page);font-family:var(--font-kanit), var(--jfo-font-family);font-size:var(--jfo-font-body-sm-size);line-height:var(--jfo-font-body-sm-line-height);background-size:28px 28px;margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.62}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{box-shadow:var(--admin-shadow-focus);outline:none}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--jfo-border-subtle);text-align:left;vertical-align:top;padding:14px 12px}th{color:var(--jfo-text-muted);font-size:var(--jfo-font-footnote-size);font-weight:var(--jfo-font-label-weight);letter-spacing:0;text-transform:uppercase}td{color:var(--jfo-text)}.sr-only{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;inset:0 auto auto 0;overflow:hidden}.admin-shell{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{overscroll-behavior:contain;height:100vh;color:var(--admin-sidebar-text);background:linear-gradient(180deg, var(--jfo-brand-deep), var(--jfo-brand)), var(--jfo-brand);padding:18px 14px;position:sticky;top:0;overflow-y:auto}.brand{border-radius:var(--jfo-radius-md);align-items:center;gap:10px;min-height:54px;margin-bottom:18px;display:flex}.brand-mark{border:1px solid color-mix(in srgb, var(--jfo-text-inverse) 24%, transparent);border-radius:var(--jfo-radius-md);background:color-mix(in srgb, var(--jfo-text-inverse) 8%, transparent);place-items:center;width:44px;height:44px;display:grid}.brand-logo{object-fit:contain;width:34px;height:34px;display:block}.brand strong{color:var(--jfo-text-inverse);line-height:1.16;display:block}.brand small{color:var(--admin-sidebar-muted);display:block}.nav-list{gap:4px;display:grid}.nav-list a,.nav-group button{border-radius:var(--jfo-radius-md);width:100%;min-height:40px;color:var(--admin-sidebar-text);text-align:left;transition:background-color var(--jfo-motion-fast) var(--jfo-ease-standard), color var(--jfo-motion-fast) var(--jfo-ease-standard);background:0 0;border:0;align-items:center;gap:10px;padding:9px 10px;display:flex}.nav-list a:hover,.nav-list a:focus-visible,.nav-list a.is-active,.nav-group button:hover,.nav-group button:focus-visible,.nav-group button.is-active{color:var(--jfo-text-inverse);background:color-mix(in srgb, var(--jfo-text-inverse) 12%, transparent)}.nav-group{gap:4px;display:grid}.nav-group-icon{transition:transform var(--jfo-motion-fast) var(--jfo-ease-standard);margin-left:auto}.nav-group.is-open .nav-group-icon{transform:rotate(180deg)}.nav-sublist{gap:3px;padding-left:28px;display:grid}.nav-sublist[hidden]{display:none}.nav-sublist a{border-left:2px solid color-mix(in srgb, var(--jfo-text-inverse) 18%, transparent);border-radius:var(--jfo-radius-sm);min-height:34px;color:var(--admin-sidebar-muted);padding:7px 10px;font-size:13px}.nav-sublist a:hover,.nav-sublist a:focus-visible,.nav-sublist a.is-active{border-left-color:var(--jfo-accent);color:var(--jfo-text-inverse);background:color-mix(in srgb, var(--jfo-text-inverse) 10%, transparent)}.workspace{min-width:0}.topbar{z-index:10;border-bottom:1px solid var(--jfo-border-subtle);background:color-mix(in srgb, var(--jfo-surface-page) 94%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;gap:18px;min-height:72px;padding:14px 28px;display:flex;position:sticky;top:0}.search-box{flex:1;max-width:640px}.search-box input,.toolbar input,.toolbar select,.dashboard-filter select,.action-form input,.action-form select,.action-form textarea{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);width:100%;min-height:42px;color:var(--jfo-text);background:var(--jfo-surface-panel);transition:border-color var(--jfo-motion-fast) var(--jfo-ease-standard), box-shadow var(--jfo-motion-fast) var(--jfo-ease-standard);padding:0 12px}.action-form textarea{resize:vertical;min-height:104px;padding-block:10px}.search-box input::placeholder,.toolbar input::placeholder,.action-form input::placeholder,.action-form textarea::placeholder{color:var(--jfo-text-subtle)}.search-box input:focus,.toolbar input:focus,.toolbar select:focus,.dashboard-filter select:focus,.action-form input:focus,.action-form select:focus,.action-form textarea:focus{border-color:var(--jfo-focus)}.operator{align-items:center;gap:10px;min-width:0;display:flex}.operator strong,.operator span{line-height:1.2;display:block}.operator-profile-link{border-radius:var(--jfo-radius-sm);min-width:0;padding:3px 4px}.operator-profile-link:hover strong,.operator-profile-link:focus-visible strong{color:var(--jfo-brand)}.operator strong{color:var(--jfo-text-heading)}.operator span{color:var(--jfo-text-muted);font-size:12px}.icon-button{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);width:40px;height:40px;color:var(--jfo-brand);background:var(--jfo-surface-panel);transition:border-color var(--jfo-motion-fast) var(--jfo-ease-standard), color var(--jfo-motion-fast) var(--jfo-ease-standard);place-items:center;display:grid}.icon-button:hover{border-color:var(--jfo-border-strong);color:var(--jfo-brand-deep)}.content{width:min(100%,1360px);margin:0 auto;padding:28px}.page-header{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px;display:flex}.page-header h1{color:var(--jfo-text-heading);font-size:var(--jfo-font-display-size);font-weight:var(--jfo-font-display-weight);line-height:var(--jfo-font-display-line-height);margin:4px 0 6px}.page-header p{max-width:720px;color:var(--jfo-text-muted);margin:0}.breadcrumbs ol{color:var(--jfo-text-muted);font-size:12px;font-weight:var(--jfo-font-label-weight);letter-spacing:0;text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:0;list-style:none;display:flex}.breadcrumbs li{align-items:center;gap:6px;display:inline-flex}.breadcrumbs li:not(:last-child):after{color:var(--jfo-text-subtle);content:"/"}.breadcrumbs a{color:var(--jfo-accent-dark);text-decoration:none}.breadcrumbs a:hover,.breadcrumbs a:focus-visible{color:var(--jfo-brand-deep);text-decoration:underline}.eyebrow{color:var(--jfo-accent-dark);font-size:var(--jfo-font-caption-size);font-weight:var(--jfo-font-strong-weight);letter-spacing:0;text-transform:uppercase;margin:0}.page-actions,.auth-actions{flex-wrap:wrap;gap:10px;display:flex}.action-stack{gap:16px;display:grid}.action-row,.inline-action-form{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.action-form{gap:10px;display:grid}.action-form label{color:var(--jfo-text-heading);font-weight:var(--jfo-font-label-weight)}.status-button{background:0 0;border:0;padding:0}.metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.metric-card,.panel,.auth-panel{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--jfo-surface-panel);box-shadow:var(--admin-shadow-soft)}.metric-card{border-top:4px solid var(--jfo-info);min-height:124px;padding:16px}.metric-card span{color:var(--jfo-text-muted);font-size:13px}.metric-card strong{color:var(--jfo-text-heading);margin-top:10px;font-size:34px;line-height:1;display:block}.metric-card p{color:var(--jfo-text-muted);margin:10px 0 0}.metric-card.tone-blue{border-top-color:var(--jfo-info)}.metric-card.tone-gold{border-top-color:var(--jfo-accent)}.metric-card.tone-green{border-top-color:var(--jfo-success)}.metric-card.tone-red{border-top-color:var(--jfo-danger)}.dashboard-grid,.two-column-grid{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:14px;margin-top:14px;display:grid}.panel{overflow:hidden}.panel-header{border-bottom:1px solid var(--jfo-border-subtle);background:color-mix(in srgb, var(--jfo-surface-lilac) 30%, transparent);justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:14px 16px;display:flex}.panel-header h2{color:var(--jfo-text-heading);font-size:var(--jfo-font-subtitle-size);line-height:var(--jfo-font-subtitle-line-height);margin:0}.panel-body{padding:16px}.queue-list,.health-list,.compact-list{gap:10px;padding:16px;display:grid}.queue-item,.health-item,.list-item{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--admin-panel-tint);justify-content:space-between;align-items:center;gap:14px;padding:12px;display:flex}.queue-item{transition:border-color var(--jfo-motion-fast) var(--jfo-ease-standard), background-color var(--jfo-motion-fast) var(--jfo-ease-standard)}.queue-item:hover{border-color:var(--jfo-border-strong);background:color-mix(in srgb, var(--jfo-surface-lilac) 58%, var(--jfo-surface-panel))}.queue-item strong,.health-item strong,.list-item strong{color:var(--jfo-text-heading);display:block}.queue-item span,.health-item span,.list-item span{color:var(--jfo-text-muted);font-size:13px;display:block}.status-badge{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-pill);min-height:26px;color:var(--jfo-brand);background:color-mix(in srgb, var(--jfo-surface-lilac) 72%, var(--jfo-surface-panel));font-size:12px;font-weight:var(--jfo-font-label-weight);white-space:nowrap;align-items:center;padding:0 10px;display:inline-flex}.status-badge.tone-blue,.status-badge.tone-info{border-color:color-mix(in srgb, var(--jfo-info) 26%, var(--jfo-border-subtle));color:var(--jfo-info-text);background:var(--jfo-info-surface)}.status-badge.tone-green{border-color:color-mix(in srgb, var(--jfo-success) 26%, var(--jfo-border-subtle));color:var(--jfo-success-text);background:var(--jfo-success-surface)}.status-badge.tone-gold,.status-badge.tone-warning{border-color:color-mix(in srgb, var(--jfo-warning) 28%, var(--jfo-border-subtle));color:var(--jfo-warning-text);background:var(--jfo-warning-surface)}.status-badge.tone-neutral{color:var(--jfo-text-muted);background:color-mix(in srgb, var(--jfo-surface-lilac) 32%, var(--jfo-surface-panel))}.status-badge.tone-red{border-color:color-mix(in srgb, var(--jfo-danger) 26%, var(--jfo-border-subtle));color:var(--jfo-danger-text);background:var(--jfo-danger-surface)}.toolbar{grid-template-columns:minmax(220px,1fr) repeat(4,max-content);align-items:center;gap:10px;margin-bottom:14px;display:grid}.filter-clear-action{white-space:nowrap}.content-stack .toolbar{grid-template-columns:minmax(240px,1fr) minmax(140px,180px) minmax(150px,180px) auto auto;align-items:center}.content-stack .toolbar-form{display:contents}.chatbot-stack{gap:14px;display:grid}.chatbot-stack .toolbar{grid-template-columns:minmax(240px,1fr) minmax(150px,190px) minmax(150px,170px) auto;align-items:center}.chatbot-stack .toolbar-form{display:contents}.chatbot-toggle{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);min-height:42px;color:var(--jfo-brand);background:var(--jfo-surface-panel);font-weight:var(--jfo-font-label-weight);justify-content:center;align-items:center;gap:8px;padding:0 12px;display:inline-flex}.chatbot-toggle input{width:18px;height:18px;accent-color:var(--jfo-brand)}.chatbot-workbench{grid-template-columns:minmax(300px,.42fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.chatbot-queue-summary{border-bottom:1px solid var(--jfo-border-subtle);color:var(--jfo-text-muted);justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;font-size:13px;display:flex}.chatbot-queue-summary strong{color:var(--jfo-text-heading)}.chatbot-chat-list{gap:10px;max-height:670px;padding:16px;display:grid;overflow:auto}.chatbot-chat-row{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);width:100%;color:var(--jfo-text);background:var(--admin-panel-tint);text-align:left;transition:border-color var(--jfo-motion-fast) var(--jfo-ease-standard), background-color var(--jfo-motion-fast) var(--jfo-ease-standard), box-shadow var(--jfo-motion-fast) var(--jfo-ease-standard);padding:12px}.chatbot-chat-row:hover,.chatbot-chat-row.is-active{border-color:var(--jfo-brand);background:color-mix(in srgb, var(--jfo-surface-lilac) 64%, var(--jfo-surface-panel))}.chatbot-chat-row.is-active{box-shadow:inset 4px 0 0 var(--jfo-accent)}.chatbot-row-main,.chatbot-row-title,.chatbot-meta-row{min-width:0;display:flex}.chatbot-row-main{flex-direction:column;gap:7px}.chatbot-row-title{justify-content:space-between;align-items:center;gap:8px}.chatbot-row-title strong{min-width:0;color:var(--jfo-text-heading);overflow-wrap:anywhere}.chatbot-row-preview{min-width:0;color:var(--jfo-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;display:-webkit-box;overflow:hidden}.chatbot-meta-row{color:var(--jfo-text-subtle);flex-wrap:wrap;gap:8px;font-size:12px}.chatbot-conversation{gap:14px;padding:16px;display:grid}.chatbot-conversation-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.chatbot-conversation-header h3{color:var(--jfo-text-heading);margin:0 0 4px;font-size:22px}.chatbot-conversation-header p{color:var(--jfo-text-muted);margin:0}.chatbot-summary,.chatbot-state-actions,.chatbot-readonly-note,.chatbot-notice{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);padding:12px}.chatbot-summary{background:color-mix(in srgb, var(--jfo-surface-lilac) 58%, var(--jfo-surface-panel))}.chatbot-summary strong{color:var(--jfo-text-heading)}.chatbot-summary p,.chatbot-state-actions p,.chatbot-readonly-note,.chatbot-notice{color:var(--jfo-text-muted);margin:0}.chatbot-transcript{gap:10px;max-height:480px;padding:2px;display:grid;overflow:auto}.chatbot-message{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--jfo-surface-panel);width:min(76%,640px);padding:10px 12px}.chatbot-message span{color:var(--jfo-text-subtle);font-size:12px;font-weight:var(--jfo-font-strong-weight);display:block}.chatbot-message p{overflow-wrap:anywhere;margin:5px 0 0}.chatbot-message.from-citizen{background:color-mix(in srgb, var(--jfo-surface-lilac) 50%, var(--jfo-surface-panel));justify-self:start}.chatbot-message.from-officer{border-color:color-mix(in srgb, var(--jfo-success) 22%, var(--jfo-border-subtle));background:var(--jfo-success-surface);justify-self:end}.chatbot-message.from-system{width:min(92%,720px);color:var(--jfo-text-muted);background:color-mix(in srgb, var(--jfo-warning-surface) 70%, var(--jfo-surface-panel));justify-self:center}.chatbot-state-actions{background:color-mix(in srgb, var(--jfo-warning-surface) 72%, var(--jfo-surface-panel));justify-content:space-between;align-items:center;gap:12px;display:flex}.chatbot-composer,.knowledge-form{gap:10px;display:grid}.chatbot-composer-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.chatbot-composer label,.knowledge-form label,.knowledge-form-grid span{color:var(--jfo-text-heading);font-weight:var(--jfo-font-label-weight)}.chatbot-composer textarea,.knowledge-form input,.knowledge-form select,.knowledge-form textarea{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);width:100%;min-height:42px;color:var(--jfo-text);background:var(--jfo-surface-panel);transition:border-color var(--jfo-motion-fast) var(--jfo-ease-standard), box-shadow var(--jfo-motion-fast) var(--jfo-ease-standard);padding:0 12px}.chatbot-composer textarea,.knowledge-form textarea{resize:vertical;min-height:116px;padding-block:10px}.chatbot-composer textarea:focus,.knowledge-form input:focus,.knowledge-form select:focus,.knowledge-form textarea:focus{border-color:var(--jfo-focus)}.chatbot-inline-error{color:var(--jfo-danger-text);font-weight:var(--jfo-font-label-weight);margin:0}.form-alert{border:1px solid color-mix(in srgb, var(--jfo-danger-text) 32%, transparent);border-radius:var(--jfo-radius-md);color:var(--jfo-danger-text);background:color-mix(in srgb, var(--jfo-danger-text) 8%, var(--jfo-surface-panel));font-weight:var(--jfo-font-label-weight);margin:0;padding:10px 12px}.field-error{color:var(--jfo-danger-text);font-size:12px;font-weight:var(--jfo-font-label-weight)}.field-helper{color:var(--jfo-text-muted);font-size:12px;font-weight:var(--jfo-font-body-weight)}.admin-toast-viewport{z-index:60;pointer-events:none;gap:10px;width:min(360px,100vw - 32px);display:grid;position:fixed;top:18px;right:18px}.admin-toast{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);box-shadow:var(--admin-shadow-soft);color:var(--jfo-text-heading);background:var(--jfo-surface-panel);font-weight:var(--jfo-font-label-weight);border-left-width:4px;padding:12px 14px}.admin-toast.tone-success{border-left-color:var(--jfo-success-text)}.admin-toast.tone-error{border-left-color:var(--jfo-danger-text)}.chatbot-notice{color:var(--jfo-success-text);background:var(--jfo-success-surface)}.chatbot-readonly-note{background:color-mix(in srgb, var(--jfo-surface-lilac) 42%, var(--jfo-surface-panel))}.knowledge-form{padding:16px}.knowledge-editor-layout{width:min(100%,960px);margin-inline:auto}.knowledge-editor-layout .page-header{margin-bottom:18px}.knowledge-editor-layout .panel{box-shadow:var(--admin-shadow-soft)}.knowledge-form-grid{grid-template-columns:minmax(180px,1fr) minmax(140px,180px);gap:10px;display:grid}.knowledge-form-grid label{gap:6px;display:grid}.knowledge-question{min-width:220px;max-width:340px;color:var(--jfo-text-heading);font-weight:var(--jfo-font-strong-weight)}.knowledge-answer{min-width:360px;max-width:520px;color:var(--jfo-text-muted);overflow-wrap:anywhere}.knowledge-cell-clamp{overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.knowledge-rag-status-cell{flex-direction:column;align-items:flex-start;gap:6px;min-width:0;max-width:100%;display:flex}.knowledge-rag-status-trigger{display:inline-flex}.knowledge-rag-status-error{width:100%;max-width:240px;color:var(--jfo-danger-text);font-size:var(--jfo-font-footnote-size);overflow-wrap:anywhere;white-space:normal;word-break:break-word;line-height:1.4;display:block}.knowledge-delete-record-question{overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.knowledge-actions{flex-wrap:wrap;gap:8px;display:flex}.knowledge-pagination{border-top:1px solid var(--jfo-border-subtle);color:var(--jfo-text-muted);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.knowledge-pagination-controls{align-items:center;gap:8px;display:flex}.knowledge-pagination-controls>span{color:var(--jfo-text-heading);font-weight:var(--jfo-font-label-weight);white-space:nowrap}.pagination-page,.pagination-ellipsis{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);min-width:38px;height:38px;color:var(--jfo-brand);background:var(--jfo-surface-panel);font-weight:var(--jfo-font-label-weight);place-items:center;display:inline-grid}.pagination-page:hover,.pagination-page:focus-visible,.pagination-page.is-current{border-color:var(--jfo-brand);color:var(--jfo-brand-deep);background:color-mix(in srgb, var(--jfo-surface-lilac) 56%, var(--jfo-surface-panel))}.pagination-page.is-disabled{pointer-events:none;opacity:.56}.pagination-ellipsis{color:var(--jfo-text-muted);background:0 0;border-color:#0000}.record-link{color:var(--jfo-brand);font-weight:var(--jfo-font-label-weight);text-decoration:none}.record-link:hover,.record-link:focus-visible{color:var(--jfo-brand-deep);text-decoration:underline}.knowledge-icon-button{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);width:38px;height:38px;color:var(--jfo-brand);background:var(--jfo-surface-panel);transition:border-color var(--jfo-motion-fast) var(--jfo-ease-standard), background-color var(--jfo-motion-fast) var(--jfo-ease-standard), color var(--jfo-motion-fast) var(--jfo-ease-standard);place-items:center;display:inline-grid}.knowledge-icon-button:hover{border-color:var(--jfo-border-strong);color:var(--jfo-brand-deep);background:color-mix(in srgb, var(--jfo-surface-lilac) 48%, var(--jfo-surface-panel))}.knowledge-icon-button.is-danger{color:var(--jfo-danger-text)}.knowledge-icon-button.is-danger:hover{border-color:color-mix(in srgb, var(--jfo-danger) 36%, var(--jfo-border-subtle));background:var(--jfo-danger-surface)}.danger-button{border-color:color-mix(in srgb, var(--jfo-danger) 34%, var(--jfo-border-subtle));color:var(--jfo-danger-text);background:var(--jfo-danger-surface)}.danger-button:hover{border-color:var(--jfo-danger);color:var(--jfo-danger-text);background:color-mix(in srgb, var(--jfo-danger-surface) 70%, var(--jfo-surface-panel))}.access-control-modal-backdrop{z-index:80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#24183657;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.access-control-confirm-modal{box-sizing:border-box;border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--jfo-surface-panel);width:min(460px,100vw - 32px);box-shadow:var(--admin-shadow-soft);grid-template-columns:auto minmax(0,1fr);gap:16px;padding:20px;display:grid}.access-control-confirm-modal.is-danger{border-color:color-mix(in srgb, var(--jfo-danger-text) 28%, var(--jfo-border-subtle))}.roles-delete-modal{overscroll-behavior:contain;width:calc(100vw - 32px);max-width:460px;max-height:calc(100dvh - 32px);overflow-y:auto}.access-control-confirm-icon{border:1px solid color-mix(in srgb, var(--jfo-danger-text) 22%, transparent);border-radius:var(--jfo-radius-md);width:42px;height:42px;color:var(--jfo-danger-text);background:color-mix(in srgb, var(--jfo-danger-surface) 80%, var(--jfo-surface-panel));place-items:center;display:grid}.access-control-confirm-content{gap:8px;min-width:0;display:grid}.access-control-confirm-content h2{color:var(--jfo-text-heading);font-size:18px;font-weight:var(--jfo-font-strong-weight);margin:0;line-height:1.3}.access-control-confirm-content p{color:var(--jfo-text-muted);margin:0;line-height:1.6}.access-control-confirm-record{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--admin-panel-tint);gap:2px;padding:10px 12px;display:grid}.access-control-confirm-record strong{color:var(--jfo-text-heading)}.access-control-confirm-record span{overflow-wrap:anywhere;color:var(--jfo-text-muted);font-size:13px}.access-control-confirm-actions{grid-column:1/-1;justify-content:flex-end;gap:10px;display:flex}@media (max-width:480px){.access-control-modal-backdrop{padding:16px}.roles-delete-modal .access-control-confirm-actions{flex-direction:column;align-items:stretch}.roles-delete-modal .access-control-confirm-actions form,.roles-delete-modal .access-control-confirm-actions button{width:100%}}.access-control-stack{gap:14px;display:grid}.access-control-editor-layout{gap:18px;width:min(100%,960px);margin-inline:auto;display:grid}.access-control-editor-layout.wide{width:100%}.access-control-notice{border:1px solid color-mix(in srgb, var(--jfo-success) 22%, var(--jfo-border-subtle));border-radius:var(--jfo-radius-md);color:var(--jfo-success-text);font-weight:var(--jfo-font-label-weight);background:var(--jfo-success-surface);margin:0;padding:10px 12px}.access-control-table td{vertical-align:top}.access-control-email,.access-control-subtext,.access-control-guard-note{color:var(--jfo-text-muted)}.access-control-subtext{overflow-wrap:anywhere;max-width:420px;margin-top:4px;font-size:13px;line-height:1.45;display:block}.access-control-guard-note{margin:8px 0 0;font-size:12px}.access-control-role-cell,.access-control-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.access-control-role-cell select{min-width:168px}.access-control-form{gap:12px;padding:16px;display:grid}.access-control-form label,.access-control-form .knowledge-form-grid span{color:var(--jfo-text-heading);font-weight:var(--jfo-font-label-weight);gap:6px;display:grid}.access-control-form input,.access-control-form select,.access-control-form textarea,.access-control-role-cell select,.permission-table select{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);width:100%;min-width:0;min-height:42px;color:var(--jfo-text);background:var(--jfo-surface-panel);padding:0 12px}.access-control-form input[aria-invalid=true],.access-control-form select[aria-invalid=true],.access-control-form textarea[aria-invalid=true]{border-color:var(--jfo-danger-text);box-shadow:0 0 0 3px color-mix(in srgb, var(--jfo-danger-text) 14%, transparent)}.access-control-form textarea{resize:vertical;min-height:120px;padding-block:10px}.access-control-form input:focus,.access-control-form select:focus,.access-control-form textarea:focus,.access-control-role-cell select:focus,.permission-toggle input:focus-visible,.permission-levels input:focus-visible,.permission-checkbox input:focus-visible{outline:2px solid color-mix(in srgb, var(--jfo-focus) 74%, transparent);outline-offset:2px}.access-control-date-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.access-control-date-grid label{min-width:0}.access-control-detail-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:16px;display:grid}.access-control-detail-list.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.access-control-detail-list div{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--jfo-surface-panel);padding:12px}.access-control-detail-list dt{color:var(--jfo-text-muted);font-size:12px;font-weight:var(--jfo-font-label-weight)}.access-control-detail-list dd{color:var(--jfo-text-heading);font-weight:var(--jfo-font-body-weight);overflow-wrap:anywhere;margin:6px 0 0}.video-record-stack,.logs-stack{gap:14px;display:grid}.log-toolbar-form.filter-count-2 .toolbar{grid-template-columns:minmax(220px,1fr) repeat(2,minmax(150px,180px)) auto auto}.log-toolbar-form.filter-count-3 .toolbar{grid-template-columns:minmax(220px,1fr) repeat(3,minmax(140px,180px)) auto auto}.log-table td{vertical-align:top;overflow-wrap:anywhere}.video-record-table td{vertical-align:top}.video-record-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.video-record-unavailable{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);min-height:42px;color:var(--jfo-text-muted);background:var(--admin-panel-tint);font-weight:var(--jfo-font-label-weight);align-items:center;padding:0 12px;display:inline-flex}.video-record-participant-list{gap:10px;padding:16px;display:grid}.video-record-participant{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--jfo-surface-panel);gap:4px;padding:12px;display:grid}.video-record-participant strong{color:var(--jfo-text-heading)}.video-record-participant span{color:var(--jfo-text-muted);font-size:13px}.permission-table table{min-width:920px}.permission-toggle,.permission-levels{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.permission-toggle,.permission-levels label{color:var(--jfo-text-heading);font-weight:var(--jfo-font-label-weight)}.permission-toggle input,.permission-levels input{width:16px;height:16px;accent-color:var(--jfo-brand)}.permission-levels{border:0;margin:0;padding:0}.permission-levels label{align-items:center;gap:6px;display:inline-flex}.permission-workspace{grid-template-columns:minmax(220px,280px) minmax(0,1fr);align-items:start;gap:14px;min-width:0;display:grid}.permission-role-list{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--jfo-surface-panel);box-shadow:var(--admin-shadow-soft);gap:8px;padding:12px;display:grid;position:sticky;top:18px}.permission-role-list h2{color:var(--jfo-text-muted);font-size:12px;font-weight:var(--jfo-font-strong-weight);text-transform:uppercase;margin:0 0 4px}.permission-role-list button{border-radius:var(--jfo-radius-md);min-height:44px;color:var(--jfo-text-heading);font-weight:var(--jfo-font-label-weight);text-align:left;background:0 0;border:1px solid #0000;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.permission-role-list button:hover{border-color:var(--jfo-border-subtle);background:var(--admin-panel-tint)}.permission-role-list button.is-active{color:var(--jfo-text-inverse);background:var(--jfo-brand-deep)}.permission-role-list button.is-active>span:first-child{color:var(--jfo-text-inverse)}.permission-role-list button.is-active .status-badge{color:var(--jfo-text-inverse);background:#ffffff29;border-color:#ffffff75}.permission-matrix-panel{gap:12px;min-width:0;max-width:100%;display:grid}.permission-matrix-panel .panel,.permission-checkbox-table{min-width:0;max-width:100%}.permission-checkbox-table table{table-layout:fixed;min-width:760px}.permission-checkbox-table th:not(:first-child),.permission-checkbox-table td:not(:first-child){text-align:center;width:116px}.permission-checkbox-table th:first-child,.permission-checkbox-table td:first-child{width:auto}.permission-group-row th{border-bottom-color:var(--jfo-border-strong);color:var(--jfo-brand-deep);background:var(--admin-panel-tint);text-align:left;padding-block:10px}.permission-unsupported{width:28px;height:28px;color:var(--jfo-text-subtle);place-items:center;font-size:18px;display:inline-grid}.permission-checkbox{place-items:center;width:28px;height:28px;display:inline-grid}.permission-checkbox input{width:16px;height:16px;accent-color:var(--jfo-brand)}.permission-change-note{border-top:1px solid var(--jfo-border-subtle);color:var(--jfo-text-muted);font-weight:var(--jfo-font-label-weight);margin:0;padding:12px 16px}.permission-workspace-feedback:empty{display:none}.permission-inline-feedback{border-bottom:1px solid color-mix(in srgb, var(--jfo-danger) 24%, var(--jfo-border-subtle));color:var(--jfo-danger);background:color-mix(in srgb, var(--jfo-danger) 7%, var(--jfo-surface-panel));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;display:flex}.permission-scroll-hint{color:var(--jfo-text-muted);font-size:var(--jfo-font-footnote-size);margin:0;padding-inline:16px;display:none}.permission-configuration-error code{color:var(--jfo-text-muted);font-size:var(--jfo-font-footnote-size)}.access-control-review{gap:12px;padding:16px;display:grid}.access-control-review ul{color:var(--jfo-text);gap:8px;margin:0;padding-left:20px;display:grid}.content-stack{gap:14px;display:grid}.content-form{gap:12px;padding:16px;display:grid}.content-form.banner-form{gap:18px;padding:20px}.content-form label{color:var(--jfo-text-heading);font-weight:var(--jfo-font-label-weight);gap:6px;display:grid}.content-form input,.content-form select,.content-form textarea,.system-setting-form input{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);width:100%;min-height:42px;color:var(--jfo-text);background:var(--jfo-surface-panel);padding:0 12px}.content-form textarea{resize:vertical;min-height:104px;padding-block:10px}.content-form small,.manual-upload-zone small{color:var(--jfo-text-muted);font-weight:500}.content-form-grid{grid-template-columns:minmax(220px,1.2fr) minmax(220px,1fr) minmax(150px,180px);gap:12px;display:grid}.content-form-grid.two{grid-template-columns:minmax(220px,1fr) minmax(150px,180px)}.banner-form-grid{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:16px;display:grid}.banner-form .content-field{min-width:0;color:var(--jfo-text-heading);font-weight:var(--jfo-font-label-weight);grid-column:1/-1;gap:8px;display:grid}.banner-form .content-field--half{grid-column:span 6}.banner-form .content-field--full{grid-column:1/-1}.banner-image-upload{align-content:start}.banner-image-upload-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.banner-image-upload-head small{color:var(--jfo-text-muted);font-weight:500}.banner-image-dropzone{border:1.5px dashed color-mix(in srgb, var(--jfo-brand) 48%, var(--jfo-border-strong));border-radius:var(--jfo-radius-md);background:linear-gradient(135deg, color-mix(in srgb, var(--jfo-surface-lilac) 66%, transparent), transparent 58%), var(--admin-panel-tint);cursor:pointer;min-height:178px;transition:border-color var(--jfo-motion-fast) var(--jfo-ease-standard), background-color var(--jfo-motion-fast) var(--jfo-ease-standard), box-shadow var(--jfo-motion-fast) var(--jfo-ease-standard);grid-template-columns:minmax(180px,.78fr) minmax(0,1fr);gap:14px;padding:12px;display:grid;position:relative}.banner-image-dropzone:hover,.banner-image-dropzone.is-dragging,.banner-image-dropzone:focus-visible,.banner-image-dropzone:focus-within{border-color:var(--jfo-brand);background:linear-gradient(135deg, color-mix(in srgb, var(--jfo-surface-lilac) 84%, transparent), transparent 58%), var(--jfo-surface-panel);outline:none;box-shadow:0 14px 32px #282a361a}.banner-image-dropzone.is-error{border-color:color-mix(in srgb, var(--jfo-danger-text) 64%, var(--jfo-border-subtle));background:color-mix(in srgb, var(--jfo-danger-surface) 46%, var(--jfo-surface-panel))}.banner-image-dropzone input[type=file]{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.banner-image-upload-preview{aspect-ratio:16/8;border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--jfo-surface-panel);place-items:center;min-width:0;display:grid;overflow:hidden}.banner-image-upload-preview img{object-fit:contain;width:100%;height:100%}.banner-image-preview-placeholder{width:100%;height:100%;color:var(--jfo-brand);background:linear-gradient(135deg, color-mix(in srgb, var(--jfo-surface-lilac) 70%, transparent), transparent), var(--jfo-surface-panel);place-items:center;display:grid}.banner-image-upload-copy{align-content:center;justify-items:start;gap:8px;min-width:0;display:grid}.banner-image-upload-copy svg{color:var(--jfo-brand)}.banner-image-upload-copy strong{color:var(--jfo-text-heading);font-size:var(--jfo-font-subtitle-size);line-height:1.35}.banner-image-upload-copy span{color:var(--jfo-text-muted);font-size:var(--jfo-font-caption-size);overflow-wrap:anywhere}.banner-image-upload-copy .secondary-button{min-height:34px;padding-inline:12px}.banner-image-current{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--jfo-surface-panel);justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;display:flex}.banner-image-current span{color:var(--jfo-text-muted);font-size:var(--jfo-font-caption-size);font-weight:600}.banner-image-current strong{min-width:0;color:var(--jfo-text-heading);font-size:var(--jfo-font-caption-size);overflow-wrap:anywhere;text-align:right}.profile-grid{grid-template-columns:minmax(0,1fr) minmax(320px,.78fr);gap:14px;display:grid}.profile-form{align-content:start}.profile-readonly-list{gap:10px;margin:2px 0 0;padding:0;display:grid}.profile-readonly-list div{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--admin-panel-tint);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.profile-readonly-list dt{color:var(--jfo-text-muted);font-size:13px}.profile-readonly-list dd{color:var(--jfo-text-heading);overflow-wrap:anywhere;text-align:right;margin:0}.content-table table{min-width:860px}.banner-table table{table-layout:fixed;min-width:980px}.banner-table-image-col{width:150px}.banner-table-title-col{width:230px}.banner-table-type-col{width:90px}.banner-table-order-col{width:70px}.banner-table-status-col{width:104px}.banner-table-date-col{width:130px}.banner-table-action-col{width:112px}.banner-table th:last-child,.banner-table td:last-child{white-space:nowrap;width:112px}.banner-table .knowledge-actions{flex-wrap:nowrap;gap:8px;min-width:84px}.content-long-text{overflow-wrap:anywhere;max-width:440px}.banner-table .content-long-text{-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:230px;display:-webkit-box;overflow:hidden}.banner-preview{align-items:center;gap:10px;min-width:180px;display:flex}.banner-table .banner-preview{min-width:0}.banner-preview img{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-sm);background:var(--jfo-surface-panel);object-fit:contain;width:44px;height:44px}.banner-preview-fallback{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-sm);background:linear-gradient(135deg, color-mix(in srgb, var(--jfo-surface-lilac) 80%, transparent), transparent), var(--jfo-surface-panel);flex:0 0 44px;width:44px;height:44px;display:inline-block}.banner-preview span{color:var(--jfo-text-muted);font-size:var(--jfo-font-caption-size);overflow-wrap:anywhere}.manual-current{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.manual-current>div{flex:1;min-width:0}.manual-current strong,.manual-selected-file strong{color:var(--jfo-text-heading);overflow-wrap:anywhere}.manual-current p,.manual-selected-file span{color:var(--jfo-text-muted);overflow-wrap:anywhere;margin:4px 0 0}.manual-availability-switch{border:1px solid var(--jfo-border-subtle);min-height:44px;color:var(--jfo-text-muted);background:var(--jfo-surface-panel);font:inherit;font-size:var(--jfo-font-caption-size);font-weight:var(--jfo-font-strong-weight);cursor:pointer;border-radius:999px;align-items:center;gap:9px;padding:6px 12px 6px 7px;display:inline-flex}.manual-availability-switch:hover:not(:disabled){border-color:var(--jfo-brand);color:var(--jfo-text-heading)}.manual-availability-switch:focus-visible,.manual-remove-selected-file:focus-visible,.manual-modal-close:focus-visible{outline:3px solid color-mix(in srgb, var(--jfo-focus) 34%, transparent);outline-offset:2px}.manual-availability-switch:disabled{cursor:not-allowed;opacity:.62}.manual-switch-track{background:var(--jfo-border-strong);width:38px;height:22px;transition:background-color var(--jfo-motion-fast) var(--jfo-ease-standard);border-radius:999px;flex:0 0 38px;position:relative}.manual-switch-thumb{background:var(--jfo-surface-panel);width:16px;height:16px;transition:transform var(--jfo-motion-fast) var(--jfo-ease-standard);border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #2418363d}.manual-availability-switch.is-enabled{border-color:color-mix(in srgb, var(--jfo-brand) 32%, var(--jfo-border-subtle));color:var(--jfo-brand);background:color-mix(in srgb, var(--jfo-surface-lilac) 70%, var(--jfo-surface-panel))}.manual-availability-switch.is-enabled .manual-switch-track{background:var(--jfo-brand)}.manual-availability-switch.is-enabled .manual-switch-thumb{transform:translate(16px)}.content-dropzone{border:1.5px dashed color-mix(in srgb, var(--jfo-brand) 58%, var(--jfo-border-strong));border-radius:var(--jfo-radius-md);min-height:176px;color:var(--jfo-text-heading);background:linear-gradient(135deg, color-mix(in srgb, var(--jfo-surface-lilac) 72%, transparent), transparent 58%), var(--admin-panel-tint);text-align:center;cursor:pointer;transition:border-color var(--jfo-motion-fast) var(--jfo-ease-standard), background-color var(--jfo-motion-fast) var(--jfo-ease-standard), box-shadow var(--jfo-motion-fast) var(--jfo-ease-standard);place-items:center;gap:8px;padding:22px;display:grid}.content-dropzone:hover,.content-dropzone.is-dragging{border-color:var(--jfo-brand);background:linear-gradient(135deg, color-mix(in srgb, var(--jfo-surface-lilac) 88%, transparent), transparent 58%), var(--jfo-surface-panel);box-shadow:0 14px 32px #282a361a}.manual-upload-zone{min-height:176px}.manual-upload-zone:focus-within{border-color:var(--jfo-focus);outline:3px solid color-mix(in srgb, var(--jfo-focus) 34%, transparent);outline-offset:2px;box-shadow:0 0 0 1px var(--jfo-surface-panel)}.manual-upload-zone.is-disabled{cursor:not-allowed;opacity:.62}.content-dropzone svg{color:var(--jfo-brand)}.content-dropzone span{font-size:var(--jfo-font-subtitle-size);font-weight:var(--jfo-font-subtitle-weight)}.content-dropzone input[type=file]{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.content-selected-files{flex-wrap:wrap;gap:8px;display:flex}.content-selected-files span{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);color:var(--jfo-text);background:var(--jfo-surface-panel);font-size:var(--jfo-font-caption-size);align-items:center;gap:6px;padding:8px 10px;display:inline-flex}.manual-selected-file{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--jfo-surface-panel);justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.manual-selected-file-content{gap:4px;min-width:0;display:grid}.manual-remove-selected-file{border:1px solid color-mix(in srgb, var(--jfo-danger-text) 22%, var(--jfo-border-subtle));border-radius:var(--jfo-radius-md);min-height:44px;color:var(--jfo-danger-text);background:var(--jfo-surface-panel);font:inherit;font-weight:var(--jfo-font-strong-weight);cursor:pointer;flex:none;justify-content:center;align-items:center;gap:7px;padding:8px 12px;display:inline-flex}.manual-remove-selected-file:hover:not(:disabled){background:var(--jfo-danger-surface)}.manual-remove-selected-file:disabled,.manual-modal-close:disabled{cursor:not-allowed;opacity:.62}.manual-availability-modal .access-control-confirm-icon{border-color:color-mix(in srgb, var(--jfo-brand) 24%, transparent);color:var(--jfo-brand);background:var(--jfo-surface-lilac)}.manual-availability-modal-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.manual-modal-close{border-radius:var(--jfo-radius-md);width:44px;height:44px;color:var(--jfo-text-muted);cursor:pointer;background:0 0;border:0;flex:0 0 44px;place-items:center;margin:-10px -10px -10px 0;display:inline-grid}.manual-modal-close:hover:not(:disabled){color:var(--jfo-text-heading);background:var(--admin-panel-tint)}.manual-upload-form .primary-button{min-height:44px}.manual-upload-error:focus{outline:3px solid color-mix(in srgb, var(--jfo-focus) 34%, transparent);outline-offset:3px}.manual-read-only-note{border-left:3px solid var(--jfo-brand);border-radius:var(--jfo-radius-sm);color:var(--jfo-text-muted);background:var(--admin-panel-tint);overflow-wrap:anywhere;margin:0;padding:12px 14px}@media (max-width:480px){.manual-current{align-items:flex-start}.manual-current .manual-availability-switch{margin-left:48px}.manual-upload-zone{min-height:148px;padding:18px 14px}.manual-upload-form .action-row,.manual-upload-form .primary-button{width:100%}.manual-selected-file{flex-direction:column;align-items:stretch}.manual-remove-selected-file,.manual-availability-modal .access-control-confirm-actions,.manual-availability-modal .access-control-confirm-actions button{width:100%}.manual-availability-modal .access-control-confirm-actions{flex-direction:column-reverse}}@media (prefers-reduced-motion:reduce){.manual-switch-track,.manual-switch-thumb{transition:none}}.settings-field-with-unit{grid-template-columns:minmax(120px,220px) auto;align-items:center;gap:10px;display:grid}.settings-field-with-unit small{color:var(--jfo-text-muted);font-weight:var(--jfo-font-label-weight)}.knowledge-icon-button:disabled{cursor:not-allowed;opacity:.45}.knowledge-icon-button.is-disabled{pointer-events:none;cursor:not-allowed;opacity:.45}.dashboard-filter-panel{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--jfo-surface-panel);box-shadow:var(--admin-shadow-soft);gap:10px;margin-bottom:14px;padding:14px;display:grid}.dashboard-filter-grid{grid-template-columns:repeat(4,minmax(160px,1fr));gap:10px;display:grid}.dashboard-filter-actions{flex-wrap:wrap;gap:10px;display:flex}.dashboard-filter{gap:6px;display:grid}.dashboard-filter span{color:var(--jfo-text-heading);font-size:12px;font-weight:var(--jfo-font-label-weight)}.dashboard-filter-panel p,.panel-note,.section-heading p{color:var(--jfo-text-muted);margin:0}.dashboard-kpi-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.metric-card strong,.rank-value,.rank-percent,.mini-metric strong,.satisfaction-hero strong,.satisfaction-row strong,.trend-table td:not(:first-child){font-variant-numeric:tabular-nums}.dashboard-main-grid{grid-template-columns:minmax(0,2fr) minmax(320px,.9fr);gap:14px;margin-top:14px;display:grid}.dashboard-section{margin-top:18px}.section-heading{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:10px;display:flex}.section-heading h2{color:var(--jfo-text-heading);margin:4px 0;font-size:22px;line-height:1.2}.mission-grid,.satisfaction-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.channel-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.trend-chart{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:linear-gradient(180deg, transparent 0 24%, var(--jfo-border-subtle) 25% 25.5%, transparent 26% 49%, var(--jfo-border-subtle) 50% 50.5%, transparent 51% 74%, var(--jfo-border-subtle) 75% 75.5%, transparent 76%), var(--admin-panel-tint);grid-template-columns:repeat(5,minmax(62px,1fr));gap:12px;min-height:226px;padding:12px;display:grid}.trend-column{grid-template-rows:minmax(160px,1fr) auto;gap:8px;min-width:0;display:grid}.trend-bars{justify-content:center;align-items:end;gap:5px;min-height:160px;display:flex}.trend-bar{border-radius:var(--jfo-radius-pill) var(--jfo-radius-pill) 0 0;width:12px;min-height:4px;display:block}.trend-requests{background:var(--jfo-brand)}.trend-citizens{background:var(--jfo-accent)}.trend-completed{background:var(--jfo-success)}.trend-label{color:var(--jfo-text-muted);text-align:center;font-size:12px}.trend-legend{color:var(--jfo-text-muted);flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:10px;font-size:12px;display:flex}.legend-dot{border-radius:var(--jfo-radius-pill);width:10px;height:10px;display:inline-block}.legend-dot.requests{background:var(--jfo-brand)}.legend-dot.citizens{background:var(--jfo-accent)}.legend-dot.completed{background:var(--jfo-success)}.trend-table{margin-top:12px}.ranked-list{gap:10px;display:grid}.ranked-row{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--admin-panel-tint);grid-template-columns:30px minmax(0,1fr) auto auto;align-items:center;gap:8px 10px;padding:10px;display:grid}.rank-number{border-radius:var(--jfo-radius-md);width:28px;height:28px;color:var(--jfo-brand);background:var(--jfo-surface-panel);font-weight:var(--jfo-font-strong-weight);place-items:center;display:grid}.rank-label{min-width:0}.rank-label strong,.rank-label small{display:block}.rank-label strong{color:var(--jfo-text-heading);overflow-wrap:anywhere;line-height:1.25}.rank-label small{color:var(--jfo-text-muted)}.rank-value{color:var(--jfo-text-heading)}.rank-percent{color:var(--jfo-text-muted);font-size:12px}.rank-bar{border-radius:var(--jfo-radius-pill);background:color-mix(in srgb, var(--jfo-surface-lilac) 72%, var(--jfo-surface-panel));grid-column:2/-1;height:8px;overflow:hidden}.rank-bar span{border-radius:inherit;background:var(--jfo-brand);height:100%;display:block}.ranked-row.tone-green .rank-bar span,.mini-metric.tone-green{background:var(--jfo-success-surface)}.ranked-row.tone-green .rank-bar span{background:var(--jfo-success)}.ranked-row.tone-gold .rank-bar span{background:var(--jfo-accent)}.ranked-row.tone-red .rank-bar span{background:var(--jfo-danger)}.channel-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0;display:grid}.mini-metric{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--jfo-surface-panel);gap:4px;min-height:82px;padding:10px;display:grid}.mini-metric span,.mini-metric small{color:var(--jfo-text-muted);font-size:12px}.mini-metric strong{color:var(--jfo-text-heading);font-size:22px;line-height:1}.satisfaction-hero{align-content:center;min-height:236px;display:grid}.satisfaction-hero>strong{color:var(--jfo-text-heading);font-size:58px;line-height:1}.satisfaction-hero p{max-width:620px;color:var(--jfo-text-muted);margin:12px 0}.satisfaction-meta{flex-wrap:wrap;gap:8px;display:flex}.satisfaction-list{gap:12px;display:grid}.satisfaction-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 12px;display:grid}.satisfaction-row span:first-child{min-width:0}.satisfaction-row strong,.satisfaction-row small{display:block}.satisfaction-row strong{color:var(--jfo-text-heading);overflow-wrap:anywhere}.satisfaction-row small{color:var(--jfo-text-muted)}.satisfaction-row .rank-bar{grid-column:1/-1}.table-wrap{overflow-x:auto}.primary-button,.secondary-button,.text-button{border-radius:var(--jfo-radius-md);min-height:42px;font-weight:var(--jfo-font-strong-weight);transition:border-color var(--jfo-motion-fast) var(--jfo-ease-standard), background-color var(--jfo-motion-fast) var(--jfo-ease-standard), color var(--jfo-motion-fast) var(--jfo-ease-standard);justify-content:center;align-items:center;gap:8px;padding:0 14px;display:inline-flex}.primary-button{border:1px solid var(--jfo-brand);color:var(--jfo-text-inverse);background:var(--jfo-brand)}.primary-button:hover{border-color:var(--jfo-brand-deep);background:var(--jfo-brand-deep)}.secondary-button{border:1px solid var(--jfo-border-subtle);color:var(--jfo-brand);background:var(--jfo-surface-panel)}.secondary-button:hover{border-color:var(--jfo-border-strong);color:var(--jfo-brand-deep)}.text-button{min-height:34px;color:var(--jfo-brand);padding:0}.text-button:hover{color:var(--jfo-brand-deep)}.login-page,.centered-state{place-items:center;min-height:100vh;padding:24px;display:grid}.login-page{grid-template-columns:minmax(280px,.9fr) minmax(340px,440px);gap:28px;width:min(1100px,100%);margin:0 auto}.login-copy{align-self:center}.login-logo{object-fit:contain;width:72px;height:72px;margin-bottom:18px;display:block}.login-copy h1{color:var(--jfo-text-heading);margin:0 0 14px;font-size:52px;line-height:1.02}.login-copy p{max-width:560px;color:var(--jfo-text-muted);margin:0;font-size:18px}.login-copy .eyebrow{margin-bottom:8px}.auth-panel{padding:22px}.auth-panel.compact{text-align:center;width:min(440px,100%)}.auth-panel h2,.auth-panel h1{color:var(--jfo-text-heading);margin:0 0 8px}.auth-panel p{color:var(--jfo-text-muted);margin:0 0 16px}.admin-login-form{gap:14px;display:grid}.admin-login-form label{color:var(--jfo-text-heading);font-weight:var(--jfo-font-label-weight);gap:7px;display:grid}.admin-login-form input{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);width:100%;min-height:46px;color:var(--jfo-text);background:var(--jfo-surface-panel);transition:border-color var(--jfo-motion-fast) var(--jfo-ease-standard), box-shadow var(--jfo-motion-fast) var(--jfo-ease-standard);padding:0 12px}.admin-login-form input:focus{border-color:var(--jfo-accent)}.admin-login-form .primary-button{width:100%;margin-top:2px}.login-form-links{justify-content:center;margin-top:-2px;display:flex}.login-form-links a{color:var(--jfo-brand);font-weight:var(--jfo-font-strong-weight);align-items:center;gap:6px;display:inline-flex}.login-form-links a:hover,.login-form-links a:focus-visible{color:var(--jfo-brand-deep);text-decoration:underline}.mfa-panel{gap:14px;width:100%;display:grid}.mfa-panel>.eyebrow{margin-bottom:-8px}.mfa-status,.mfa-feedback{min-height:24px}.mfa-status{color:var(--jfo-text-muted);align-items:center;gap:9px;display:flex}.mfa-spinner{border:2px solid var(--jfo-border-subtle);border-top-color:var(--jfo-brand);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite mfa-spin}@keyframes mfa-spin{to{transform:rotate(360deg)}}.mfa-enrollment,.mfa-form{gap:12px;display:grid}.mfa-steps{color:var(--jfo-text);gap:6px;margin:0;padding-left:24px;display:grid}.mfa-qr{aspect-ratio:1;border:1px solid var(--jfo-brand-light);border-radius:var(--jfo-radius-md);background:var(--jfo-surface-panel);justify-self:center;place-items:center;width:min(220px,100%);display:grid;overflow:hidden}.mfa-qr img{width:100%;height:100%;display:block}.mfa-secret-toggle{justify-self:center;min-height:44px}.mfa-manual-secret{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--jfo-surface-muted);gap:6px;min-width:0;padding:12px;display:grid}.mfa-manual-secret span,.mfa-form label{color:var(--jfo-text-heading);font-weight:var(--jfo-font-label-weight)}.mfa-manual-secret code{overflow-wrap:anywhere;color:var(--jfo-text-heading);letter-spacing:.08em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.mfa-form input{border:1px solid var(--jfo-brand-light);border-radius:var(--jfo-radius-md);width:100%;min-height:48px;color:var(--jfo-text-heading);background:var(--jfo-surface-panel);font-variant-numeric:tabular-nums;letter-spacing:.22em;text-align:center;transition:border-color var(--jfo-motion-fast) var(--jfo-ease-standard), box-shadow var(--jfo-motion-fast) var(--jfo-ease-standard);padding:0 12px;font-size:16px}.mfa-form input:focus-visible,.mfa-panel button:focus-visible{border-color:var(--jfo-brand-deep);outline:2px solid var(--jfo-brand-deep);outline-offset:2px;box-shadow:var(--admin-shadow-focus)}.mfa-panel .secondary-button{border-color:var(--jfo-brand-light)}.mfa-form input[aria-invalid=true]{border-color:var(--jfo-danger)}.mfa-form .primary-button,.mfa-panel>.secondary-button{width:100%;min-height:44px}.mfa-form button:disabled,.mfa-sign-out button:disabled{cursor:not-allowed;opacity:.62}.mfa-feedback .form-alert{margin:0}.mfa-feedback:empty{display:none}.mfa-sign-out{justify-content:center;margin-top:-2px;display:flex}.mfa-panel .text-button{background:0 0;border:0}.mfa-sign-out .text-button{min-height:44px}@media (max-width:1024px){.mfa-page{grid-template-columns:1fr;width:min(480px,100%)}.mfa-page .login-copy{text-align:center}.mfa-page .login-logo{margin-inline:auto}}@media (max-width:480px){.mfa-page{padding:16px}.mfa-page .login-logo{width:64px;height:64px}.mfa-page .login-copy h1{font-size:36px}}.empty-state{color:var(--jfo-text-muted);text-align:center;padding:22px}.empty-state strong{color:var(--jfo-text-heading);display:block}.request-log-tabs,.appointment-legend,.appointment-action-bar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.request-log-tabs{margin-bottom:12px}.request-log-table td:last-child{min-width:220px}.appointment-toolbar{grid-template-columns:minmax(240px,1fr) repeat(3,minmax(138px,170px)) auto auto;gap:10px;margin-bottom:12px;display:grid}.appointment-readonly-workspace{gap:14px;display:grid}.appointment-readonly-workspace .toolbar{grid-template-columns:minmax(240px,1fr) auto auto}.appointment-readonly-grid{grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);align-items:start;gap:14px;display:grid}.appointment-readonly-list{gap:10px;padding:16px;display:grid}.appointment-readonly-card{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);width:100%;color:var(--jfo-text);background:var(--admin-panel-tint);text-align:left;transition:border-color var(--jfo-motion-fast) var(--jfo-ease-standard), background-color var(--jfo-motion-fast) var(--jfo-ease-standard);gap:8px;padding:12px;display:grid}.appointment-readonly-card:hover,.appointment-readonly-card.is-active{border-color:var(--jfo-brand);background:color-mix(in srgb, var(--jfo-surface-lilac) 58%, var(--jfo-surface-panel))}.appointment-readonly-card-main,.appointment-readonly-meta,.appointment-readonly-detail-header{align-items:center;gap:10px;display:flex}.appointment-readonly-card-main{justify-content:space-between}.appointment-readonly-card>span:not(.appointment-readonly-card-main){color:var(--jfo-text-muted);font-size:13px}.appointment-readonly-detail{gap:14px;padding:16px;display:grid}.appointment-readonly-detail-header{justify-content:space-between;align-items:flex-start}.appointment-readonly-detail-header span{color:var(--jfo-text-muted);font-size:13px;font-weight:var(--jfo-font-label-weight);text-transform:uppercase}.appointment-readonly-detail-header h2{color:var(--jfo-text-heading);margin:4px 0 0;font-size:24px}.appointment-readonly-detail-list{gap:10px;margin:0;display:grid}.appointment-readonly-detail-list div{border-top:1px solid var(--jfo-border-subtle);grid-template-columns:minmax(140px,.35fr) minmax(0,1fr);gap:12px;padding-top:10px;display:grid}.appointment-readonly-detail-list dt{color:var(--jfo-text-muted);font-weight:var(--jfo-font-label-weight)}.appointment-readonly-detail-list dd{color:var(--jfo-text-heading);align-items:center;gap:8px;margin:0;display:flex}.appointment-toolbar select,.appointment-toolbar input,.appointment-form input,.appointment-form select,.appointment-form textarea,.participant-combobox-control{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);width:100%;min-height:42px;color:var(--jfo-text);background:var(--jfo-surface-panel);padding:0 12px}.appointment-form textarea{resize:vertical;min-height:92px;padding-block:10px}.appointment-search{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--jfo-surface-panel);align-items:center;gap:8px;min-width:0;padding:0 10px;display:flex}.appointment-search input{border:0;min-width:0;padding:0}.appointment-search input:focus{box-shadow:none;outline:0}.appointment-legend{color:var(--jfo-text-muted);margin-bottom:14px}.appointment-legend span,.appointment-type-label{align-items:center;gap:6px;display:inline-flex}.appointment-layout{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}.appointment-layout.has-side-panel{grid-template-columns:minmax(0,1fr) minmax(360px,430px)}.appointment-main,.appointment-detail{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--jfo-surface-panel);box-shadow:var(--admin-shadow-soft)}.appointment-main{min-width:0}.appointment-calendar-shell{padding:14px}.appointment-calendar-shell .fc{--fc-border-color:var(--jfo-border-subtle);--fc-button-active-bg-color:var(--jfo-brand-deep);--fc-button-active-border-color:var(--jfo-brand-deep);--fc-button-bg-color:var(--jfo-brand);--fc-button-border-color:var(--jfo-brand);--fc-button-hover-bg-color:var(--jfo-brand-deep);--fc-button-hover-border-color:var(--jfo-brand-deep);--fc-event-bg-color:var(--jfo-surface-panel);--fc-event-border-color:var(--jfo-border-subtle);--fc-event-text-color:var(--jfo-text);color:var(--jfo-text);font-family:var(--jfo-font-family)}.appointment-calendar-shell .fc .fc-toolbar{flex-wrap:wrap;gap:10px;margin-bottom:14px}.appointment-calendar-shell .fc .fc-toolbar-title{color:var(--jfo-text-heading);font-size:var(--jfo-font-h3-size);font-weight:var(--jfo-font-h3-weight);line-height:var(--jfo-font-h3-line-height)}.appointment-calendar-shell .fc .fc-button{border-radius:var(--jfo-radius-md);min-height:36px;font-weight:var(--jfo-font-label-weight);letter-spacing:0;text-transform:none;padding:7px 11px}.appointment-calendar-shell .fc .fc-button:focus,.appointment-calendar-shell .fc .fc-button:focus-visible{box-shadow:var(--admin-shadow-focus)}.appointment-calendar-shell .fc .fc-col-header-cell,.appointment-calendar-shell .fc .fc-timegrid-axis,.appointment-calendar-shell .fc .fc-list-day-cushion{color:var(--jfo-text-muted);background:var(--admin-panel-tint)}.appointment-calendar-shell .fc .fc-daygrid-day-frame{min-height:136px}.appointment-calendar-shell .fc .fc-daygrid-day-number{border-radius:var(--jfo-radius-sm);color:var(--jfo-brand);font-weight:var(--jfo-font-strong-weight);margin:6px;padding:3px 7px}.appointment-calendar-shell .fc .fc-day-today{background:color-mix(in srgb, var(--jfo-accent) 11%, transparent)}.appointment-calendar-shell .fc .fc-event{border-left:4px solid var(--jfo-warning);border-radius:var(--jfo-radius-sm);background:var(--admin-panel-tint);box-shadow:0 8px 20px color-mix(in srgb, var(--jfo-brand-deep) 7%, transparent);cursor:pointer;padding:2px 4px;overflow:hidden}.appointment-calendar-shell .fc .fc-event:hover{border-color:var(--jfo-accent);box-shadow:var(--admin-shadow-focus)}.appointment-calendar-shell .fc .fc-event.fc-status-confirmed{border-left-color:var(--jfo-success)}.appointment-calendar-shell .fc .fc-event.fc-status-cancelled{border-left-color:var(--jfo-danger);opacity:.72}.appointment-calendar-shell .fc .fc-event.fc-type-video{background:color-mix(in srgb, var(--jfo-surface-lilac) 64%, var(--jfo-surface-panel))}.appointment-calendar-shell .fc .fc-event.fc-type-walk-in{background:color-mix(in srgb, var(--jfo-success-surface) 48%, var(--jfo-surface-panel))}.appointment-calendar-shell .fc .fc-event.fc-intake-new{outline:1px dashed color-mix(in srgb, var(--jfo-warning) 58%, transparent);outline-offset:-4px;border-style:solid}.appointment-calendar-shell .fc .fc-bg-event.fc-slot-full,.appointment-calendar-shell .fc .fc-bg-event.fc-slot-holiday,.appointment-calendar-shell .fc .fc-bg-event.fc-slot-out_of_service{background:var(--jfo-danger-surface);opacity:.35}.appointment-settings-calendar-shell{padding:0;overflow-x:auto}.appointment-settings-calendar-shell .fc .fc-event.fc-setting-open{border-left-color:var(--jfo-success);background:color-mix(in srgb, var(--jfo-success-surface) 58%, var(--jfo-surface-panel))}.appointment-settings-calendar-shell .fc .fc-event.fc-setting-closed{border-left-color:var(--jfo-danger);background:color-mix(in srgb, var(--jfo-danger-surface) 60%, var(--jfo-surface-panel))}.appointment-settings-calendar-shell .fc .fc-bg-event.fc-setting-selected{background:color-mix(in srgb, var(--jfo-accent) 36%, transparent);opacity:.55}.appointment-fc-event{gap:2px;min-width:0;line-height:1.25;display:grid}.appointment-fc-event-main{align-items:center;gap:6px;min-width:0;display:flex}.appointment-fc-event-main span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.appointment-fc-event small{color:var(--jfo-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.appointment-detail p,.history-panel p{overflow-wrap:anywhere}.appointment-detail{align-self:start;max-height:calc(100vh - 112px);padding:16px;position:sticky;top:88px;overflow:auto}.appointment-detail-header{border-bottom:1px solid var(--jfo-border-subtle);justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:14px;display:flex}.appointment-detail-header-actions{align-items:flex-start;gap:8px;display:flex}.appointment-detail-top-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.appointment-detail-header h2,.appointment-form-header h2{color:var(--jfo-text-heading);margin:4px 0 0}.appointment-detail-grid{grid-template-columns:1fr;gap:12px;padding-top:14px;display:grid}.appointment-detail h3,.participant-panel h3,.meeting-room-panel h3,.history-panel h3{color:var(--jfo-text-heading);margin:0 0 8px;font-size:15px}.participant-panel,.meeting-room-panel,.history-panel{border-top:1px solid var(--jfo-border-subtle);margin-top:14px;padding-top:14px}.participant-chip-list{flex-wrap:wrap;gap:8px;display:flex}.participant-chip{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-pill);min-height:34px;color:var(--jfo-brand);background:var(--admin-panel-tint);font-weight:var(--jfo-font-label-weight);align-items:center;gap:7px;padding:0 10px;display:inline-flex}.participant-chip small{color:var(--jfo-text-muted);font-weight:500}.meeting-link{border-radius:var(--jfo-radius-md);color:var(--jfo-brand-deep);background:var(--admin-panel-tint);overflow-wrap:anywhere;padding:10px}.empty-state-inline{border:1px dashed var(--jfo-border-strong);border-radius:var(--jfo-radius-md);color:var(--jfo-text-muted);background:var(--admin-panel-tint);padding:9px 10px;display:inline-flex}.appointment-action-bar{margin-top:14px}.appointment-form-panel{background:var(--jfo-surface-panel)}.appointment-form{gap:14px;display:grid}.appointment-form-header,.participant-picker-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.appointment-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.appointment-form label{color:var(--jfo-text-heading);font-weight:var(--jfo-font-label-weight);gap:6px;display:grid}.appointment-form .span-2{grid-column:1/-1}.form-error{border:1px solid color-mix(in srgb, var(--jfo-danger) 28%, var(--jfo-border-subtle));border-radius:var(--jfo-radius-md);color:var(--jfo-danger-text);background:var(--jfo-danger-surface);padding:10px 12px}.form-error p{margin:0}.participant-picker{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--admin-panel-tint);gap:10px;padding:12px;display:grid}.participant-combobox{position:relative}.participant-combobox-control{background:var(--jfo-surface-panel);align-items:center;gap:8px;padding:0 8px 0 12px;display:flex}.participant-combobox-control:focus-within{border-color:var(--jfo-focus);box-shadow:var(--admin-shadow-focus)}.participant-combobox-control input{background:0 0;border:0;min-width:0;padding:0}.participant-combobox-control input:focus{box-shadow:none;outline:0}.participant-combobox-toggle{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-sm);width:30px;height:30px;color:var(--jfo-brand);background:var(--admin-panel-tint);flex:none;place-items:center;display:grid}.participant-options{z-index:20;border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--jfo-surface-panel);max-height:256px;box-shadow:var(--admin-shadow-soft);gap:8px;padding:8px;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto}.participant-option{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);min-height:54px;color:var(--jfo-text);background:var(--jfo-surface-panel);text-align:left;gap:4px;padding:8px 10px;display:grid}.participant-option span{justify-content:space-between;align-items:center;gap:8px;display:flex}.participant-option.selected{border-color:var(--jfo-accent);background:color-mix(in srgb, var(--jfo-surface-lilac) 62%, var(--jfo-surface-panel))}.participant-option small{color:var(--jfo-text-muted)}.participant-empty-option{border:1px dashed var(--jfo-border-strong);border-radius:var(--jfo-radius-md);color:var(--jfo-text-muted);background:var(--admin-panel-tint);padding:10px 12px}.report-stack{gap:14px;display:grid}.report-overview-card p,.report-deferred-note p,.report-filter-footer p,.report-export-message,.report-bar-label small{color:var(--jfo-text-muted)}.report-overview-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;display:grid}.report-overview-card,.report-deferred-note,.report-filter-panel{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--jfo-surface-panel);box-shadow:var(--admin-shadow-soft)}.report-overview-card{align-content:start;gap:12px;padding:14px;display:grid}.report-card-header{gap:12px;display:grid}.report-card-header h2,.report-deferred-note h2{color:var(--jfo-text-heading);margin:0;font-size:18px;line-height:1.22}.report-card-header p,.report-deferred-note p{margin:6px 0 0;line-height:1.45}.report-card-metrics{gap:8px;display:grid}.report-card-metrics .mini-metric{min-height:76px}.report-deferred-note{background:color-mix(in srgb, var(--jfo-warning-surface) 62%, var(--jfo-surface-panel));padding:16px}.report-filter-panel{gap:12px;padding:14px;display:grid}.report-filter-panel.toolbar{box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-columns:repeat(4,minmax(140px,1fr)) auto auto;align-items:end;padding:0}.report-filter-grid{grid-template-columns:repeat(4,minmax(160px,1fr));gap:10px;display:grid}.report-filter{min-width:0;display:block}.report-filter select{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);width:100%;min-height:42px;color:var(--jfo-text);background:var(--jfo-surface-panel);padding:0 12px}.report-filter select:focus{border-color:var(--jfo-focus)}.report-filter-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.report-filter-summary{gap:2px;display:grid}.report-filter-footer p{font-weight:var(--jfo-font-label-weight);margin:0}.report-filter-summary small{color:var(--jfo-text-muted);font-size:12px}.report-filter-actions,.report-export{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.report-export-message{min-height:20px;font-size:12px;font-weight:var(--jfo-font-label-weight)}.report-metric-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.report-analysis-grid,.report-mission-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.report-bar-list{gap:10px;display:grid}.report-bar-row{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--admin-panel-tint);grid-template-columns:30px minmax(0,1fr) auto auto;align-items:center;gap:8px 10px;padding:10px;display:grid}.report-bar-label{min-width:0}.report-bar-label strong,.report-bar-label small{overflow-wrap:anywhere;display:block}.report-bar-label strong,.report-bar-value{color:var(--jfo-text-heading)}.report-bar-value,.report-table td:not(:first-child){font-variant-numeric:tabular-nums}.report-bar-track{border-radius:var(--jfo-radius-pill);background:color-mix(in srgb, var(--jfo-surface-lilac) 72%, var(--jfo-surface-panel));grid-column:2/-1;height:8px;overflow:hidden}.report-bar-fill{width:var(--report-bar-percent);border-radius:inherit;background:var(--jfo-brand);height:100%;display:block}.report-bar-row.tone-green .report-bar-fill{background:var(--jfo-success)}.report-bar-row.tone-gold .report-bar-fill{background:var(--jfo-accent)}.report-bar-row.tone-red .report-bar-fill{background:var(--jfo-danger)}.report-table table{min-width:780px}.report-table td strong{color:var(--jfo-text-heading);overflow-wrap:anywhere}.mission-report-section{gap:12px;display:grid}.settings-stack{gap:14px;display:grid}.settings-form{gap:14px;width:100%;display:grid}.settings-section-body{gap:12px;display:grid}.settings-control-list{border-top:1px solid var(--jfo-border-subtle);display:grid}.settings-control-row{border-bottom:1px solid var(--jfo-border-subtle);grid-template-columns:minmax(220px,.8fr) minmax(320px,1fr);align-items:center;gap:18px;padding:16px 0;display:grid}.settings-control-label,.settings-control-row strong,.settings-control-value span{color:var(--jfo-text-heading)}.settings-control-label{font-weight:var(--jfo-font-label-weight);display:inline-block}.settings-control-row p{color:var(--jfo-text-muted);margin:4px 0 0;line-height:1.45}.settings-control-value{text-align:right;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.settings-control-value>span{overflow-wrap:anywhere;font-weight:var(--jfo-font-strong-weight)}.settings-field-control{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);min-width:220px;max-width:520px;min-height:40px;color:var(--jfo-text);background:var(--jfo-surface-panel);font:inherit;text-align:left;flex:280px;padding:0 11px}.settings-field-control:focus-visible{border-color:var(--jfo-focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--jfo-focus) 18%, transparent);outline:none}.settings-field-control[readonly]{color:var(--jfo-text-heading);background:color-mix(in srgb, var(--jfo-surface-lilac) 42%, var(--jfo-surface-panel))}.settings-textarea{resize:vertical;width:100%;max-width:none;min-height:132px;padding-block:10px;line-height:1.55}.settings-control-row.type-textarea{grid-template-columns:1fr;align-items:start;gap:10px}.settings-control-row.type-textarea .settings-control-value{text-align:left;justify-content:stretch;align-items:stretch}.settings-toggle-control{color:var(--jfo-text-heading);cursor:pointer;text-align:left;flex:none;justify-content:flex-start;align-items:center;gap:10px;display:inline-flex}.settings-toggle-input{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.settings-toggle-track{border:1px solid color-mix(in srgb, var(--jfo-success) 80%, var(--jfo-border-subtle));border-radius:var(--jfo-radius-pill);background:color-mix(in srgb, var(--jfo-success) 82%, var(--jfo-surface-panel));width:48px;height:28px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--jfo-text-inverse) 34%, transparent);flex:none;transition:background .18s,border-color .18s,box-shadow .18s;position:relative}.settings-toggle-thumb{background:var(--jfo-text-inverse);width:20px;height:20px;box-shadow:0 2px 6px color-mix(in srgb, var(--jfo-brand-deep) 20%, transparent);border-radius:999px;transition:transform .18s;position:absolute;top:3px;left:3px;transform:translate(20px)}.settings-toggle-input:not(:checked)+.settings-toggle-track{border-color:var(--jfo-border-subtle);background:color-mix(in srgb, var(--jfo-surface-lilac) 58%, var(--jfo-surface-panel))}.settings-toggle-input:not(:checked)+.settings-toggle-track .settings-toggle-thumb{transform:translate(0)}.settings-toggle-input:checked+.settings-toggle-track{border-color:color-mix(in srgb, var(--jfo-success) 86%, var(--jfo-brand-deep));background:color-mix(in srgb, var(--jfo-success) 82%, var(--jfo-surface-panel))}.settings-toggle-input:focus-visible+.settings-toggle-track{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--jfo-text-inverse) 34%, transparent), 0 0 0 3px color-mix(in srgb, var(--jfo-focus) 20%, transparent);outline:none}.settings-toggle-state{color:var(--jfo-text-heading);font-size:13px;font-weight:var(--jfo-font-label-weight)}.settings-policy-table table{min-width:640px}.settings-policy-table td:first-child strong{color:var(--jfo-text-heading)}.settings-note-list{gap:8px;display:grid}.settings-note-list span{border-left:3px solid var(--jfo-accent);border-radius:var(--jfo-radius-sm);color:var(--jfo-text-muted);background:color-mix(in srgb, var(--jfo-warning-surface) 42%, var(--jfo-surface-panel));padding:9px 10px;line-height:1.45}.settings-static-action{white-space:nowrap}.appointment-settings-form{gap:16px}.appointment-settings-layout{grid-template-columns:minmax(0,1.25fr) minmax(380px,.75fr);align-items:start;gap:16px;display:grid}.appointment-settings-calendar,.appointment-settings-config{gap:14px;display:grid}.appointment-settings-month-bar,.appointment-settings-legend,.selected-date-control,.appointment-service-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.appointment-settings-month-bar strong,.selected-date-control strong,.appointment-service-header span{color:var(--jfo-text-heading)}.appointment-settings-legend{justify-content:flex-end}.appointment-setting-option input,.appointment-slot-toggle input{opacity:0;pointer-events:none;position:absolute}:is(.appointment-setting-option:has(input:focus-visible),.appointment-slot-toggle:has(input:focus-visible)){box-shadow:var(--admin-shadow-focus);outline:none}.appointment-settings-side{position:sticky;top:88px}.appointment-settings-fieldset{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);gap:10px;min-width:0;padding:12px;display:grid}.appointment-settings-fieldset legend{color:var(--jfo-text-heading);font-weight:var(--jfo-font-strong-weight);padding:0 6px}.appointment-option-grid,.appointment-service-toggle-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.appointment-setting-option,.appointment-slot-toggle{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);min-height:40px;color:var(--jfo-text-muted);background:var(--jfo-surface-panel);font-weight:var(--jfo-font-label-weight);cursor:pointer;align-items:center;gap:7px;padding:0 11px;display:inline-flex;position:relative}:is(.appointment-setting-option:has(input:checked),.appointment-slot-toggle:has(input:checked)){border-color:color-mix(in srgb, var(--jfo-success) 46%, var(--jfo-border-subtle));color:var(--jfo-text-heading);background:color-mix(in srgb, var(--jfo-success-surface) 54%, var(--jfo-surface-panel))}.availability-status-open:has(input:checked){border-color:color-mix(in srgb, var(--jfo-success) 64%, var(--jfo-border-subtle))}.availability-status-closed:has(input:checked){border-color:color-mix(in srgb, var(--jfo-danger) 68%, var(--jfo-border-subtle));color:var(--jfo-text-heading);background:color-mix(in srgb, var(--jfo-danger-surface) 62%, var(--jfo-surface-panel))}.availability-status-closed:has(input:checked) svg{color:var(--jfo-danger)}.appointment-closed-reason{color:var(--jfo-text-muted);font-size:12px;font-weight:var(--jfo-font-label-weight);gap:6px;display:none}.appointment-closed-reason input{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);width:100%;min-height:40px;color:var(--jfo-text-heading);background:var(--jfo-surface-panel);font:inherit;font-weight:var(--jfo-font-body-weight);padding:0 11px}.appointment-closed-reason input:focus-visible{border-color:var(--jfo-focus);box-shadow:var(--admin-shadow-focus);outline:none}.appointment-open-config{gap:14px;display:grid}.appointment-settings-config:has(input[value=closed]:checked) .appointment-open-config{display:none}.appointment-settings-config:has(input[value=closed]:checked) .appointment-closed-reason{display:grid}.appointment-service-slot-list{gap:12px;display:grid}.appointment-settings-config:has(input[value=walk-in]:not(:checked)) .appointment-service-card[data-service-type=walk-in]{display:none}.appointment-settings-config:has(input[value=video-conference]:not(:checked)) .appointment-service-card[data-service-type=video-conference]{display:none}.appointment-settings-action-row{border-top:1px solid var(--jfo-border-subtle);justify-content:flex-end;padding-top:14px;display:flex}.appointment-service-card{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);background:var(--admin-panel-tint);gap:12px;padding:12px;display:grid}.appointment-service-header span{font-weight:var(--jfo-font-strong-weight);align-items:center;gap:7px;display:inline-flex}.appointment-capacity-control{min-width:150px;color:var(--jfo-text-muted);font-size:12px;font-weight:var(--jfo-font-label-weight);gap:5px;display:grid}.appointment-capacity-control input{border:1px solid var(--jfo-border-subtle);border-radius:var(--jfo-radius-md);width:100%;min-height:38px;color:var(--jfo-text-heading);background:var(--jfo-surface-panel);font:inherit;font-weight:var(--jfo-font-strong-weight);padding:0 10px}.appointment-capacity-control input:focus-visible{border-color:var(--jfo-focus);box-shadow:var(--admin-shadow-focus);outline:none}.appointment-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (max-width:1080px){.admin-shell{grid-template-columns:76px minmax(0,1fr)}.brand span:not(.brand-mark),.nav-list span{display:none}.sidebar{padding-inline:12px}.nav-list a{justify-content:center}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-grid,.two-column-grid,.dashboard-main-grid,.satisfaction-grid,.chatbot-workbench{grid-template-columns:1fr}.chatbot-chat-list,.chatbot-transcript{max-height:none}.dashboard-filter-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}.report-filter-grid,.report-overview-grid,.mission-grid,.channel-grid,.report-analysis-grid,.report-mission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.appointment-toolbar,.appointment-layout,.appointment-layout.has-side-panel,.appointment-settings-layout{grid-template-columns:1fr}.appointment-settings-side{position:static}.appointment-detail{max-height:none;position:static}}@media (max-width:760px){body{font-size:14px}.admin-shell{grid-template-columns:1fr}.sidebar{height:auto;position:relative;overflow:visible}.nav-list{grid-template-columns:repeat(3,minmax(0,1fr))}.settings-control-row{grid-template-columns:1fr}.settings-control-value{text-align:left;justify-content:flex-start}.settings-policy-table table{min-width:560px}.topbar,.page-header{flex-direction:column;align-items:stretch}.topbar{padding:14px 18px}.content{padding:18px}.banner-form .content-field--half{grid-column:1/-1}.banner-image-dropzone{grid-template-columns:1fr}.page-header h1{font-size:30px}.toolbar,.chatbot-stack .toolbar,.log-toolbar-form.filter-count-2 .toolbar,.log-toolbar-form.filter-count-3 .toolbar,.report-filter-panel.toolbar,.login-page,.dashboard-filter-grid,.report-filter-grid,.report-overview-grid,.report-analysis-grid,.report-mission-grid,.dashboard-kpi-grid,.mission-grid,.channel-grid,.knowledge-form-grid,.access-control-date-grid,.access-control-detail-list,.access-control-detail-list.compact,.profile-grid,.appointment-form-grid,.appointment-option-grid,.appointment-service-toggle-grid,.appointment-slot-grid,.participant-options{grid-template-columns:1fr}.appointment-settings-action-row,.appointment-settings-action-row .settings-static-action{width:100%}.chatbot-state-actions,.chatbot-composer-actions,.chatbot-conversation-header,.knowledge-pagination{flex-direction:column;align-items:stretch}.chatbot-state-actions{justify-content:center}.permission-workspace{grid-template-columns:1fr}.permission-role-list{position:static}.permission-scroll-hint{display:block}.chatbot-message{width:100%}.appointment-calendar-shell{padding:10px;overflow-x:auto}.appointment-calendar-shell .fc{min-width:680px}.appointment-calendar-shell .fc .fc-toolbar{flex-direction:column;align-items:flex-start}.appointment-calendar-shell .fc .fc-toolbar-title{font-size:18px}.appointment-readonly-grid,.appointment-readonly-detail-list div{grid-template-columns:1fr}.appointment-readonly-card-main,.appointment-readonly-meta,.appointment-readonly-detail-header,.profile-readonly-list div{flex-direction:column;align-items:flex-start}.profile-readonly-list dd{text-align:left}.trend-chart{grid-template-columns:repeat(5,minmax(48px,1fr));gap:8px;overflow-x:auto}.trend-bar{width:10px}.ranked-row{grid-template-columns:30px minmax(0,1fr) auto}.rank-percent{grid-column:2/-1}.rank-bar{grid-column:1/-1}.report-bar-row{grid-template-columns:30px minmax(0,1fr) auto}.report-bar-row .status-badge{grid-column:2/-1;justify-self:start}.report-bar-track{grid-column:1/-1}.channel-metrics{grid-template-columns:1fr}.satisfaction-hero>strong{font-size:46px}.login-copy h1{font-size:40px}}.faq-question-preview,.faq-answer-preview{white-space:pre-wrap;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.faq-question-preview{-webkit-line-clamp:2}.faq-answer-preview{-webkit-line-clamp:3}
