/* Shared component contract. Layout stays in its owning feature stylesheet.
   Do not set programme-name colors here: recognition owns those colors. */
body{font-family:var(--font-ui);font-size:var(--text-body);line-height:1.75}
button,input,select,textarea{font-family:var(--font-ui);letter-spacing:normal}
h1,h2,h3,h4{letter-spacing:normal;line-height:1.5;font-weight:700;overflow-wrap:anywhere}
.section-bar h2{font-size:var(--text-section)}
.section-bar{gap:12px;margin:20px 0 12px;flex-wrap:wrap}
.section-intro,.notice{font-size:var(--text-control);line-height:1.8}
.kicker{letter-spacing:normal;font-weight:600;text-transform:none}
.primary-button,.secondary-button,.mode-button,.view-toggle button,.pagination button,
.detail-tools button,.card-tools button,.chat-answer-actions button,.chat-followups button,
.chat-tools button,.search-box>button{
 min-height:var(--sina-control-height);min-width:44px;padding:9px 14px;
 border-radius:var(--sina-control-radius);font-size:var(--text-control);font-weight:600;
 line-height:1.5;white-space:normal;overflow-wrap:anywhere;transition:background-color .15s,border-color .15s;
}
.primary-button,.search-box>button{background:var(--sina-navy);color:#fff;border:1px solid var(--sina-navy)}
.secondary-button{background:#eef3f9;color:#243b55;border:1px solid #ced8e5}
@media(hover:hover){
 .primary-button:not(:disabled):hover,.search-box>button:not(:disabled):hover{background:#20476f;border-color:#20476f}
 .secondary-button:not(:disabled):hover{background:#e3ebf5;border-color:#a7b9cf}
}
button:disabled{cursor:not-allowed;opacity:.55;box-shadow:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{
 outline:3px solid var(--focus-ring);outline-offset:3px;
}
.sidebar button:focus-visible{outline-color:#ecd19b}
.picker-field,.form-grid label,.search-label,.filters label{font-size:var(--text-control);font-weight:600;gap:6px}
.picker-trigger{min-height:var(--sina-control-height);padding:9px 12px;border-radius:var(--sina-control-radius);font-size:var(--text-control);font-weight:400;line-height:1.6;border-color:var(--sina-control-border)}
.picker-options button{min-height:44px;font-size:var(--text-control);padding:10px 12px;font-weight:400}
.picker-options button[aria-selected=true]{font-weight:600}
.picker-count{font-size:var(--text-caption)}
.text-button{min-height:44px;line-height:1.65;font-size:var(--text-control);border-radius:8px}
.form-grid input:not([type=checkbox]):not([type=radio]),.form-grid select,.form-grid textarea,
.auth-card input,.search-label input,.filters input,.picker-search{
 min-height:44px;border-radius:var(--sina-control-radius);font-size:1rem;line-height:1.6;padding:9px 12px;
}
.form-grid input[type=checkbox],.form-grid input[type=radio]{min-height:0;inline-size:18px;block-size:18px;accent-color:var(--sina-navy)}
.form-grid .check{min-height:44px;gap:8px;margin:4px}
input::placeholder,textarea::placeholder{color:#627087;opacity:1}
.nav-item{font-size:var(--text-control);font-weight:600;line-height:1.6;min-height:44px;padding:10px 12px;text-align:start}
.nav-item svg{width:20px;height:20px;flex-shrink:0}
.sidebar .brand{padding-bottom:18px}.user-profile{padding-top:14px}
.programme-name,.daily-program .programme-name{font-size:1rem;font-weight:650;line-height:1.65;text-align:start}
.daily-program .program-identity p{font-size:var(--text-control);line-height:1.7}
.compact-meta,.daily-program .compact-meta{font-size:var(--text-caption);line-height:1.75}
.daily-price strong{font-size:1.25rem;font-weight:700;font-variant-numeric:tabular-nums}
.daily-actions,.detail-tools,.card-tools,.knowledge-actions{display:flex;flex-wrap:wrap;gap:8px}
.daily-program,.knowledge-card,.entity-tile,.folder-tile{border-radius:14px}
.folder-tile strong,.knowledge-card h3,.entity-tile h3{font-size:1rem;line-height:1.65}
.knowledge-card p,.knowledge-answer p,.knowledge-full{font-size:var(--text-body);line-height:1.9}
.clean-table{font-size:var(--text-control);line-height:1.7}.clean-table th{font-weight:600}
.count-badge{font-size:var(--text-caption);font-weight:600}
.breadcrumbs{gap:6px;margin-bottom:16px}.breadcrumbs button{min-height:44px;padding:6px 10px;border-radius:8px;font-size:var(--text-control)}
#detailModal>.drawer-head{padding:14px 18px;gap:12px;flex-wrap:nowrap}
#detailModal>.drawer-head h2{font-size:var(--text-title);line-height:1.6;max-width:none;flex:1;min-width:0;margin:0}
#detailModal>.drawer-head button{min-width:44px;min-height:44px}
#detailModal .modal-body{font-size:var(--text-body);line-height:1.85;padding:20px}
.detail-section-title{font-size:var(--text-title)}
.chat-message,.chat-knowledge-item p{font-size:var(--text-body);line-height:1.9}
.chat-followups button,.chat-answer-actions button,.chat-prompts button{font-size:var(--text-control);line-height:1.65;min-height:44px}
.chat-options>summary,.chat-evidence summary,.chat-history>summary{min-height:44px;font-size:var(--text-caption);padding-block:10px;cursor:pointer}
.chat-composer textarea{font-size:1rem}
.chat-program-card strong{font-size:var(--text-body);line-height:1.65}.chat-program-card small{font-size:var(--text-caption)}
.chat-welcome h3{font-size:clamp(22px,2.5vw,28px)}
@media(max-width:760px){
 .section-bar h2{font-size:var(--text-title)}
 .search-surface{padding:16px;border-radius:16px}
 .daily-program{padding:14px;gap:12px}
 #detailModal .modal-body{padding:16px}
 .form-grid{gap:14px}
 .chat-message{font-size:1rem}
 .top-actions button{font-size:var(--text-caption)}
 .top-actions .top-ai{font-size:var(--text-caption);padding-inline:8px}
 .topbar h1{font-size:1rem}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
