/* Shared visual system. Structural rules remain in style.css; access layout in auth.css. */
:root{--ink:#172b42;--muted:#526174;--blue:#245a78;--paper:#f5f7fa;--line:#b6c2cf;--green:#176447;--danger:#a02436;--bg:#eef2f6;font-family:"Segoe UI Variable Text","Segoe UI",sans-serif;font-size:16px;line-height:1.5}
.section-nav{max-width:1136px;margin:20px auto 0;padding:0 28px;display:flex;gap:10px;flex-wrap:wrap}.section-nav[hidden]{display:none}.section-nav a,.management-tabs a,.management-link{padding:10px 16px;border-radius:7px;text-decoration:none;color:var(--muted);font-size:16px;line-height:1.5}.section-nav a[aria-current=page],.management-tabs a[aria-current=page]{background:var(--ink);color:white;font-weight:600}.section-nav a:hover,.management-tabs a:hover,.management-link:hover{background:#e0eaf1;color:var(--ink)}
.view-switch{display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:10px;background:white}.view-switch button{background:transparent;border-color:transparent;color:var(--muted);min-height:40px;padding:8px 14px}.view-switch button[aria-pressed=true]{background:var(--ink);color:#fff}.view-switch button:hover{background:#e0eaf1;color:var(--ink)}
.dialog-filter{display:grid;grid-template-columns:minmax(0,2fr) minmax(150px,1fr) auto auto;gap:14px;align-items:end;margin:24px 0}.dialogs-workspace{display:grid;grid-template-columns:minmax(260px,1fr) minmax(0,1.8fr);gap:24px}.dialog-item{display:flex;flex-direction:column;align-items:flex-start;width:100%;text-align:left;gap:8px;background:white;color:var(--ink);border:1px solid var(--line);margin-bottom:10px;padding:18px;font-weight:400;overflow-wrap:anywhere}.dialog-item:hover,.dialog-item[aria-pressed=true]{background:#e4edf4;color:var(--ink);border-color:var(--blue)}.dialog-item strong{font-size:16px;overflow-wrap:anywhere}.dialog-item-meta{font-size:14px;color:var(--muted)}.dialog-pagination{display:flex;gap:12px;margin-top:16px}.dialog-detail{min-width:0;align-self:start}.dialog-detail h3{overflow-wrap:anywhere}.dialog-messages{display:grid;gap:16px}.transcript-message{padding:16px;border:1px solid #cbd5df;border-radius:10px;background:#f5f7fa;min-width:0}.transcript-message.from-user{background:#e7eef4}.transcript-message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0 0}.transcript-meta{display:flex;flex-wrap:wrap;gap:8px 14px;justify-content:space-between;font-size:14px}.transcript-meta time{color:var(--muted)}#dialog-more{margin-top:20px}#dialog-list .empty{padding:24px 18px}#dialog-list .empty h3{font-size:22px}
@media(max-width:1000px){.dialog-filter{grid-template-columns:1fr 1fr}.dialogs-workspace{grid-template-columns:minmax(0,1fr)}}
@media(max-width:480px){.dialog-filter{grid-template-columns:1fr}.dialog-detail{padding:20px}.transcript-message{padding:14px}.dialog-pagination button{flex:1}}
.admin-card-contacts{display:grid;grid-template-columns:85px minmax(0,1fr);gap:8px;font-size:15px;margin:0}.admin-card-contacts dt{color:var(--muted)}.admin-card-contacts dd{margin:0;overflow-wrap:anywhere}.card-description{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.admin-cards .badge{white-space:normal}.admin-cards .card-top>div{min-width:0}.admin-cards h3{overflow-wrap:anywhere}
@media(min-width:1101px){body[data-role=admin]:not(.access-page) .section-nav{margin:28px 40px 0 284px;padding:0;max-width:none}body[data-role=admin]:not(.access-page) .section-nav:not([hidden])+main{padding-top:26px}}
body{background:var(--paper)}
h1,h2,h3{font-family:"Segoe UI Variable Display","Segoe UI",sans-serif;color:var(--ink)}
h1{font-size:clamp(30px,3vw,42px);font-weight:650;letter-spacing:-1.1px;line-height:1.18}
h2{font-size:24px;font-weight:650;line-height:1.3;letter-spacing:-.35px}
h3{font-size:20px;line-height:1.4;letter-spacing:-.2px}
p,li{line-height:1.65}small,.count,.pill,.badge,.direction small,.diff,.history p,footer{font-size:14px;line-height:1.5}
label{font-size:15px;line-height:1.5;font-weight:600}input,select,textarea{font-size:16px;border-color:#8c9daf;border-radius:8px;min-height:48px;padding:12px 14px}
input::placeholder,textarea::placeholder{color:#647184;opacity:1}
button,.button{min-height:46px;border-radius:8px;padding:11px 19px;font-weight:600;line-height:1.4}
button:hover,.button:hover{background:#19445e}
button.secondary,.button.secondary{color:var(--ink);background:#fff;border-color:#8c9daf}
button.secondary:hover,.button.secondary:hover{background:#e9eff4;border-color:var(--blue)}
.danger:hover{background:#fff0f2;color:var(--danger)}
:focus-visible{outline:3px solid #a66c12;outline-offset:3px}
.brand{font-size:15px}.brand-mark{background:var(--ink);border-radius:11px 11px 11px 2px}
.header{max-width:1280px;padding:24px 40px;gap:28px;min-height:104px}
.header nav{gap:8px}.header nav a{padding:10px 12px;font-size:15px;border-radius:7px}
.header nav a:hover{background:#e5ecf2}.header nav a[aria-current=page]{background:#e0eaf1;color:#173e59;font-weight:650}
.header nav button{margin-left:8px;min-height:44px;font-size:15px}
#menu-toggle{display:none}
main{max-width:1200px;margin:28px auto 72px;padding:0 32px}
.title-row{align-items:flex-start;margin:0 0 28px}.title-row h1{margin-bottom:10px}.title-row p{margin-bottom:0}.title-row .toolbar{justify-content:flex-end;padding-top:3px}
.toolbar{gap:10px}.panel{padding:28px;border:1px solid #d6dee7;border-radius:12px;margin-bottom:24px}.panel h2{margin-bottom:16px}
.panel>p:last-child{margin-bottom:0}.fields{gap:22px}.stack{gap:22px}
.tabs{gap:8px;margin:26px 0;border-bottom:1px solid var(--line);padding-bottom:12px}
.tabs button{font-size:16px;color:var(--muted);border-radius:7px;padding:10px 16px}
.tabs button:hover{background:#e6edf3;color:var(--ink)}
.tabs button[aria-selected=true]{background:#172b42;border-color:#172b42;color:#fff}
.activity-summary{border-block:1px solid #cbd5df;padding:14px 0;margin:20px 0;color:var(--muted)}
.activity-summary summary{cursor:pointer;color:var(--ink);font-size:16px;font-weight:600}
.activity-summary summary span{font-size:14px;font-weight:400;margin-left:18px;color:var(--muted)}
.activity-summary>div{padding:20px 0 5px}.activity-summary p{margin-bottom:12px}
.admin-examples-link{margin-top:28px;padding-top:22px;border-top:1px solid var(--line);font-size:15px}.admin-examples-link span{display:block;margin-top:6px;color:var(--muted);font-size:14px}
.card-actions .badge{white-space:normal;overflow-wrap:anywhere}
.filters[hidden]{display:none}.stat-definitions{margin:28px 0;display:grid;gap:0}.stat-definitions>div{display:grid;grid-template-columns:230px 1fr;gap:24px;padding:24px 0;border-top:1px solid var(--line)}.stat-definitions dt{font-size:18px;font-weight:600}.stat-definitions dd{margin:0}.stat-definitions dd>strong{font-size:32px;line-height:1.2;color:var(--ink)}.stat-definitions p{margin:10px 0 0;max-width:65ch;color:var(--muted)}.statistics-note{margin-top:20px}
@media(max-width:760px){.stat-definitions>div{grid-template-columns:1fr;gap:12px;padding:22px 0}.stat-definitions dd>strong{font-size:28px}}
.directions{margin-bottom:28px}.directions p{font-size:15px;max-width:72ch}
.direction{padding:12px 16px;border-radius:8px;font-size:15px;gap:5px;background:#fff;border-color:#c3ced9}
.direction strong{font-size:14px;color:#23465f;background:#e6eef4}.direction small{font-size:14px}
.direction:hover,.direction[aria-current=true],.direction[aria-pressed=true]{background:#e5eef4;border-color:#245a78}
.filters{gap:18px}.section-bar{margin:28px 0 18px}
.table-wrap{border:1px solid #c3ced9;border-radius:10px;scrollbar-color:#71869a #edf1f5}
table{font-size:16px;line-height:1.5}th,td{padding:19px 20px}th{background:#e9eef4;font-size:14px;color:#405267;font-weight:650;border-bottom:1px solid #b6c2cf}td{border-color:#e1e6ed}td a{color:#1f526e;text-decoration-thickness:1px;text-underline-offset:4px}td small{font-size:14px;margin-top:6px}
tbody tr:hover{background:#f5f8fb}.badge{padding:5px 9px;background:#e9eef4;color:#405267;white-space:nowrap}.badge.demo{background:#eee8f5;color:#60417e}.badge.good{background:#e4f1e9;color:#176447}.badge.pending{background:#fcf0cf;color:#705116}
#admin-table>.panel{margin-top:20px;background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;padding:24px 0}
.card{padding:28px;gap:18px;border-color:#ccd6e0;border-radius:12px}.card .avatar{background:#e8eef4;color:#274b63;border-radius:16px}.card h3{font-size:22px}.card .muted{line-height:1.6}.card-actions .button{min-width:150px}.pill{background:#edf1f5;color:#405267;padding:6px 10px}
.hero{gap:56px;padding:30px 0 44px}.hero h1{font-size:clamp(34px,4vw,56px);line-height:1.12;letter-spacing:-1.5px}.hero p{font-size:18px}
.hero-note{background:#e7eef4;border-radius:2px 24px 24px 24px;border-left:3px solid #245a78;padding:30px}.hero-note strong{font-size:21px;line-height:1.4}.hero-note p{font-size:16px}
.search-panel{border-color:#c3ced9;padding:26px;border-radius:12px}.search-line{align-items:end}.empty{border:1px solid #ccd6e0;padding:48px 28px;background:#fff}.empty h3{font-size:26px}
.bubble{border-color:#cbd5df;border-radius:12px 12px 12px 2px;padding:20px 24px}.bubble.user{background:#e4eef4;border-radius:12px 12px 2px 12px}.dialog{gap:18px}.source-text{background:#eef2f6}.details{font-size:16px}.error{background:#fff0f2;color:#a02436}
footer{max-width:1200px;padding-inline:32px;border-color:#cbd5df}.narrow{max-width:820px}.help p,.help li{max-width:72ch}
/* The administrator has a stable workspace rail; public browsing keeps a light header. */
@media(min-width:1101px){
 body[data-role=admin]:not(.access-page) .header{position:fixed;inset:0 auto 0 0;width:244px;max-width:none;padding:32px 20px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;background:#172b42;color:#fff;overflow:auto;z-index:5;gap:42px}
 body[data-role=admin]:not(.access-page) .brand{color:#fff;font-size:14px;gap:10px}.brand-mark{flex-shrink:0}
 body[data-role=admin]:not(.access-page) .brand-mark{background:#fff;color:#172b42}
 body[data-role=admin]:not(.access-page) .header nav{flex:1;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px;flex-wrap:nowrap}
 body[data-role=admin]:not(.access-page) .header nav a{color:#dbe5ef;padding:13px 16px;border:1px solid transparent;font-size:16px;position:relative}
 body[data-role=admin]:not(.access-page) .header nav a:hover{background:#263e57;color:#fff}
 body[data-role=admin]:not(.access-page) .header nav a[aria-current=page]{background:#304d68;color:#fff;border-color:#53718d}
 body[data-role=admin]:not(.access-page) .header nav a[aria-current=page]::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;background:#d2e5f3;border-radius:2px}
 body[data-role=admin]:not(.access-page) .header nav button{margin:32px 0 0;margin-top:auto;color:#e3ebf3;border-color:#73879b;background:transparent;justify-content:flex-start;padding:12px 16px}
 body[data-role=admin]:not(.access-page) .header nav button:hover{background:#304d68}
 body[data-role=admin]:not(.access-page) main{width:calc(100% - 244px);max-width:1500px;margin:0 0 64px 244px;padding:48px 40px 0}
 body[data-role=admin]:not(.access-page) footer{margin-left:284px;margin-right:40px;padding:24px 0;max-width:none}
 body[data-role=admin]:not(.access-page) .title-row{flex-wrap:wrap;gap:20px}
 body[data-role=admin]:not(.access-page) .title-row .toolbar{margin-left:auto}
}
/* Access screens keep the same quiet palette and readable supporting copy. */
.access-page .access-art{background:#e7eef4;border-radius:20px}.access-page .access-art p{color:#172b42;font-size:24px;font-weight:600}
.access-page .access-card h1{font-size:38px;letter-spacing:-1px}.access-page .access-intro{color:#526174;font-size:18px}
.access-card label{font-size:15px}.access-card input{border-color:#8c9daf}.access-card input:focus-visible{outline:3px solid #a66c12;outline-offset:3px;border-color:#245a78}
.access-card .button.secondary{border-color:#71869a;color:#245a78}.access-card .button.secondary:hover{background:#e7eef4}
.access-small,.access-card .access-link-button{font-size:14px;color:#526174}.access-password button{font-size:14px;color:#34536d;border:0}.access-password input{padding-right:100px}
.access-forgot,.access-return{font-size:15px;color:#245a78}.access-message{background:#e7eef4;border-left-color:#245a78;font-size:16px}
.access-page #menu-toggle{display:none}.access-card .error{font-size:15px}.access-card button:disabled{opacity:1;background:#e9eef3;color:#526174;border-color:#b6c2cf}
@media(max-width:1100px){
 .header{position:relative;min-height:88px;padding:22px 28px;align-items:center;flex-wrap:wrap;border-bottom:1px solid #d6dee7;background:#fff;gap:0}
 #menu-toggle{display:inline-flex;margin-left:auto;min-width:88px}
 .header #nav{display:none;max-width:none;width:100%;padding-top:20px;gap:8px;justify-content:flex-start}
 .menu-open .header #nav{display:flex}.header #nav a{font-size:16px;min-height:46px;padding:12px}.header #nav button{margin-left:0}
 main{padding:0 28px;margin-top:28px}.title-row{flex-wrap:wrap}.workspace{grid-template-columns:minmax(0,1.35fr) minmax(270px,1fr)}
 .access-page .header{border:0;background:transparent}.access-page .access-card h1{font-size:34px}
}
@media(max-width:760px){
 .header{padding:18px 20px;min-height:84px}.brand{font-size:14px}.brand-mark{width:38px;height:38px;font-size:34px;line-height:33px}
 .header #nav{flex-direction:column;align-items:stretch}.header #nav a,.header #nav button{width:100%;text-align:left;justify-content:flex-start}
 main{padding:0 20px;margin:26px auto 48px}h1{font-size:32px}.title-row{margin-bottom:24px}.title-row .toolbar{width:100%;padding:0}.toolbar .button{width:100%}
 .workspace,.fields,.filters,.hero{grid-template-columns:minmax(0,1fr)}.panel,.card{padding:22px}.cards{gap:16px}
 .tabs{gap:4px}.tabs button{padding:10px 12px;font-size:15px}.activity-summary summary span{display:block;margin:8px 0 0 20px}
 .direction-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.direction{padding:12px;font-size:14px}.direction span{gap:8px;flex-wrap:wrap}.direction small{font-size:14px}.direction strong{min-width:24px}
 .table-wrap{max-width:100%}table{min-width:680px}th,td{padding:16px}.table-wrap:focus-visible{outline-offset:0}
 .hero{padding:4px 0 28px;gap:24px}.hero h1{font-size:38px}.hero p{font-size:17px}.hero-note{padding:24px}.search-panel{padding:20px}.section-bar{margin-top:24px}
 .access-page .access-art p{font-size:20px}.access-page .access-card h1{font-size:32px}.access-page .access-intro{font-size:17px}.access-page .access-art{border-radius:16px}
 footer{padding:24px 20px}.details{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
