/* FL Buddy 7 · Phase 22A – UI polish only. No business/data logic. */
:root{--flb7-radius:14px;--flb7-focus:0 0 0 3px rgba(22,195,199,.14)}
body.flb7-workspace{font-synthesis:none}
body.flb7-workspace :is(button,a,input,select,textarea){transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease,opacity .16s ease,transform .16s ease}
body.flb7-workspace :is(button,a,input,select,textarea):focus-visible{outline:2px solid var(--flb7-accent);outline-offset:2px}
body.flb7-workspace :is(.panel,.card,.hero-card,.student-record-card,.flb7-entity-card){border-radius:var(--flb7-radius)}
body.flb7-workspace :is(.panel-head,.section-head,.record-head){gap:12px}
body.flb7-workspace :is(.primary-button,.secondary-button,.text-button,.icon-button){min-height:38px}
body.flb7-workspace :is(.primary-button,.secondary-button):active{transform:translateY(1px)}
/* Navigation clarity */
.flb7-nav-main.is-active,.flb7-subnav button.is-active{box-shadow:inset 3px 0 0 var(--flb7-accent)}
.flb7-subnav button{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* More useful tab density without sacrificing touch targets */
.flb7-tabsbar{gap:4px;padding-left:10px;padding-right:10px}
.flb7-tab{min-width:108px;max-width:190px;padding:0 8px;gap:6px}
.flb7-tab-label{min-width:0;max-width:150px}
.flb7-tab-close{min-width:24px;min-height:24px;display:grid;place-items:center}
/* Long names and data must never push layouts apart */
body.flb7-workspace :is(.student-name,.record-title,.entity-title,.appointment-main,.profile-mini,.flb7-user)>*{min-width:0}
body.flb7-workspace :is(.student-name,.record-title,.entity-title,.appointment-main strong,.profile-mini strong){overflow-wrap:anywhere}
/* Consistent form density */
body.flb7-workspace :is(input,select,textarea){border-radius:10px}
body.flb7-workspace textarea{min-height:92px;resize:vertical}
body.flb7-workspace :is(input,select,textarea):focus{box-shadow:var(--flb7-focus)}
/* Empty / loading states used throughout old and new modules */
body.flb7-workspace :is(.empty-state,.flb7-empty,.empty,.no-data){min-height:110px;display:grid;place-items:center;text-align:center;padding:22px;border:1px dashed rgba(122,188,191,.22);border-radius:12px;color:var(--flb7-muted);background:rgba(7,38,47,.34)}
body.flb7-workspace :is(.loading,.is-loading){cursor:progress}
body.flb7-workspace :is(.loading,.is-loading)::after{content:'Lädt …';display:inline-block;margin-left:8px;color:var(--flb7-muted);font-size:12px}
/* Dark-mode contrast guardrails */
body.flb7-workspace.dark :is(.muted,.subtle,small){color:#a9c0c4}
body.flb7-workspace.dark :is(input,select,textarea){color:#eef8f8}
/* Notebook widths */
@media (max-width:1280px) and (min-width:981px){body.flb7-workspace .app-shell{grid-template-columns:236px minmax(0,1fr)}body.flb7-workspace .sidebar{width:236px}.flb7-globalbar,.flb7-tabsbar{left:236px}.flb7-tab{min-width:100px;max-width:165px}.flb7-tab-label{max-width:125px}}
/* Touch/mobile polish */
@media(max-width:640px){body.flb7-workspace :is(button,.nav-item,.flb7-subnav button){min-height:44px}.flb7-tab{min-width:104px;max-width:150px}.flb7-tab-close{min-width:30px;min-height:30px}.flb7-search-results{max-height:min(62vh,440px)}body.flb7-workspace :is(.panel,.card,.hero-card){border-radius:12px}}
@media(prefers-reduced-motion:reduce){body.flb7-workspace *,body.flb7-workspace *::before,body.flb7-workspace *::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
