:root {
  --type-caption: .875rem; --type-body: 1rem; --type-section: 1.125rem; --weight-semibold: 700;
  --text-sm: .875rem; --text-body: 1rem; --text-section: 1.125rem; --text-page-title: 1.375rem; --text-status: 1.5rem; --weight-title: 700;
}
/* Shared interaction and small-screen rules. Keep content usable at text zoom. */
:root { --ux-focus: #1764bf; }
.skip-link { position: fixed; inset-block-start: .5rem; inset-inline-start: .5rem; padding: .8rem 1rem; background: #fff; color: #123c63; border: 2px solid var(--ux-focus); border-radius: .5rem; z-index: 100000; transform: translateY(-180%); }
.skip-link:focus { transform: none; }
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline: 3px solid var(--ux-focus) !important; outline-offset: 3px; }
#mainContent { min-width: 0; scroll-margin-block-start: 5rem; }
.ux-summary { padding: 1.25rem; margin-block-end: 1.25rem; background: #eef6ff; border: 1px solid #c7dcef; border-radius: 1rem; }
.ux-summary h2 { margin: .3rem 0 1rem; font-size: var(--text-status, 1.5rem); line-height: 1.3; font-weight: var(--weight-title, 700); }
.ux-summary-label { margin: 0; font-weight: var(--weight-semibold); color: #335671; }
.ux-summary p { max-width: 70ch; }
.ux-summary-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-block-start: 1rem; }
.ux-summary-actions .btn { min-height: 44px; }
/* Özet: durum + saklama kartları yan yana; mobilde alt alta (ux-dashboard-grid) */
.ux-dashboard-grid .ux-summary p { max-width: none; }
.ux-details { margin-block: 1.25rem; border: 1px solid var(--line,#d4dce4); border-radius: .7rem; padding: 1rem; }
.ux-details summary { cursor: pointer; font-weight: var(--weight-semibold); min-height: 32px; }
.ux-details .dash-price-how { margin-block-start: 1rem; }
.ux-help { display: flex; align-items: center; gap: .5rem; min-height: 44px; }
html.portal-feedback-locked .sidebar.is-feedback-locked .sidebar-footer .sidebar-link.ux-help { pointer-events: auto; opacity: 1; color: inherit !important; cursor: pointer !important; }
.ux-network { position: sticky; inset-block-start: 0; z-index: 50; padding: .75rem 1rem; background: #fff3cd; color: #513e00; border: 1px solid #ddc169; }
.ux-network[hidden], .ux-downloads[hidden] { display: none; }
.ux-downloads { margin-block: 1rem; padding: 1rem; border: 1px solid #c7dcef; border-radius: .75rem; background: #f4f9ff; }
.ux-downloads h2 { font-size: var(--type-section); }
.ux-downloads ul { padding-inline-start: 1.5rem; }
.ux-downloads li { margin-block: .75rem; overflow-wrap: anywhere; }
.ux-downloads a { display: inline-block; min-height: 44px; padding-block: .5rem; }
.ux-message { padding: .75rem; margin-block: .75rem; border-inline-start: 4px solid #1764bf; background: #eef6ff; color: #153753; overflow-wrap: anywhere; }
.ux-message:empty { display: none; }
.fs-list-search { min-width: 0; }
.fs-list-row { min-width: 0; }
.fs-col-name { overflow-wrap: anywhere; }
.fs-breadcrumb { overflow-x: auto; }
.site-footer { padding-bottom: env(safe-area-inset-bottom, 0px); }
.mobile-bar { padding-top: max(.55rem, env(safe-area-inset-top, 0px)); }
.sidebar { padding-bottom: env(safe-area-inset-bottom, 0px); }
.login-page, .app-shell { min-height: 100svh; }
.login-shell { padding-bottom: max(1rem,env(safe-area-inset-bottom,0px)); }
@media (pointer: coarse) {
  :where(.btn,.nav-item,.sidebar-link,.toggle-pass,.menu-toggle,.sidebar-close,.fs-list-search-btn,.fs-list-refresh-btn) { min-height: 44px; min-width: 44px; }
  :where(input,select,textarea) { font-size: max(1rem,16px); }
  input[type=checkbox],input[type=radio] { min-width: 22px; min-height: 22px; }
  .fs-list-row { min-height: 48px; }
}
@media (max-width: 700px) {
  .ux-summary-actions .btn { flex: 1 1 100%; justify-content: center; }
  .fs-bulk-bar,.fs-list-searchbar { flex-wrap: wrap; gap: .6rem; }
  .fs-list-searchbar input { flex: 1 1 100%; width: 100%; }
  #fsExplorer .fs-explorer-panes { display: flex; flex-direction: column; height: auto; min-height: 0; }
  #fsExplorer .fs-tree-pane { width: 100% !important; max-height: 25svh; overflow: auto; border-inline-end: 0; border-bottom: 1px solid var(--line); }
  #fsPaneSplitter { display: none; }
  #fsExplorer .fs-list-pane { width: 100%; min-width: 0; }
  #fsExplorer .fs-list-body { min-height: 180px; max-height: 60svh; overflow: auto; }
  #fsExplorer .fs-col-date,#fsExplorer .fs-col-type,#fsExplorer .fs-col-num,#fsExplorer .fs-col-resizer { display: none; }
  #fsExplorer .fs-list-row { grid-template-columns: 32px 28px minmax(0,1fr) 74px; }
  #fsExplorer .fs-col-name { min-width: 0; width: auto !important; flex: 1; }
  #fsExplorer .fs-col-name,#fsExplorer .fs-col-name .fs-file-link { white-space: normal; overflow-wrap: anywhere; text-overflow: clip; }
  #fsExplorer .fs-list-row { min-height: 48px; }
  #fsExplorer .fs-list-search { min-height: 44px; font-size: var(--type-body); width: 100%; max-width: none; }
  #fsExplorer .fs-list-search-btn,#fsExplorer .fs-list-refresh-btn { min-height: 44px; min-width: 44px; }
  body.fs-scan-active #fsExplorer .fs-list-row { grid-template-columns: 28px minmax(0,1fr) 74px; }
  #fsExplorer .fs-col-size { width: 74px; flex: 0 0 74px; }
  .content-card { min-width: 0; }
  .portal-devices-table { display: block; max-width: 100%; overflow-x: auto; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) { .ux-summary,.ux-details,.ux-downloads { border: 1px solid CanvasText; } }
