*,*::before,*::after{box-sizing:border-box}
html{max-width:100%;overflow-x:clip;scroll-behavior:smooth}
body{max-width:100%;overflow-x:clip;margin:0;color:var(--ff-text-primary);background:var(--ff-bg-page);font:var(--ff-type-body)/var(--ff-leading-body) var(--ff-font-frontend)}
body.ff-admin{font-family:var(--ff-font-admin)}
button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}
a{color:var(--ff-link);text-underline-offset:.18em}a:hover{color:var(--ff-link-hover)}
:focus-visible{outline:0;box-shadow:var(--ff-focus-ring)}
[hidden]{display:none!important}
.ff-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.ff-skip{position:fixed;z-index:200;left:1rem;top:-5rem;padding:.5rem 1rem;color:var(--ff-text-primary);background:var(--ff-bg-surface);border-radius:var(--ff-radius-sm)}.ff-skip:focus{top:1rem}
.ff-container{width:min(calc(100% - 2 * var(--ff-gutter)),var(--ff-public-max));margin-inline:auto}.ff-app-container{width:min(calc(100% - 2 * var(--ff-gutter)),var(--ff-app-max));margin-inline:auto}
.ff-stack{display:grid;gap:var(--ff-space-4)}.ff-cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ff-space-3)}
.ff-muted{color:var(--ff-text-muted)}.ff-small{font-size:var(--ff-type-sm)}.ff-caption{font-size:var(--ff-type-caption)}.ff-code{font-family:var(--ff-font-mono);overflow-wrap:anywhere}.ff-danger-text{color:var(--ff-danger)}
.ff-svg{width:1.2rem;height:1.2rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Shared shell and navigation */
#ff-app-shell{min-height:100vh;display:flex;flex-direction:column}#ff-main{flex:1}
.ff-site-header{position:relative;z-index:50;min-height:4.5rem;display:flex;align-items:center;background:var(--ff-header-bg);border-bottom:1px solid var(--ff-border)}
.ff-header-row{min-height:4.5rem;display:flex;align-items:center;gap:var(--ff-space-6)}
.ff-wordmark{color:var(--ff-text-primary);font-size:1.25rem;font-weight:800;letter-spacing:-.03em;text-decoration:none}.ff-wordmark span{color:var(--ff-accent-text)}
.ff-main-nav{display:flex;align-items:center;gap:var(--ff-space-5);margin-left:auto}.ff-main-nav>a:not(.ff-btn){color:var(--ff-text-secondary);font-size:var(--ff-type-sm);font-weight:650;text-decoration:none}.ff-main-nav>a[aria-current=page]{color:var(--ff-accent-text)}
.ff-mobile-nav{position:absolute;left:var(--ff-gutter);right:var(--ff-gutter);top:calc(100% + .5rem);padding:.5rem;background:var(--ff-bg-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-md);box-shadow:var(--ff-shadow-lg)}
.ff-mobile-nav a{min-height:2.75rem;display:flex;align-items:center;padding:.5rem .75rem;color:var(--ff-text-primary);text-decoration:none;border-radius:var(--ff-radius-sm)}.ff-mobile-nav a:hover{background:var(--ff-bg-subtle)}
.ff-page-head{padding:var(--ff-space-10) 0 var(--ff-space-6)}.ff-page-head h1{margin:0 0 var(--ff-space-2);font-size:var(--ff-type-h1);line-height:var(--ff-leading-heading);letter-spacing:-.025em}.ff-page-head p{max-width:46rem;margin:0;color:var(--ff-text-secondary)}
.ff-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin:0 0 .75rem;padding:0;list-style:none;font-size:var(--ff-type-sm)}.ff-breadcrumb li{display:flex;align-items:center;gap:.35rem}.ff-breadcrumb li+li::before{content:"/";color:var(--ff-text-muted)}.ff-breadcrumb a{font-weight:650;text-decoration:none}.ff-breadcrumb [aria-current=page]{color:var(--ff-text-secondary)}.ff-crumb-overflow{position:relative}.ff-crumb-overflow summary{list-style:none;color:var(--ff-link);font-weight:800;cursor:pointer}.ff-crumb-overflow summary::-webkit-details-marker{display:none}.ff-crumb-menu{position:absolute;z-index:25;top:1.6rem;left:0;min-width:10rem;padding:.35rem;background:var(--ff-bg-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-sm);box-shadow:var(--ff-shadow-md)}.ff-crumb-menu a{display:block;padding:.35rem .5rem}.ff-breadcrumb-mobile{display:none}
.ff-footer{margin-top:var(--ff-space-16);padding:var(--ff-space-8) 0;color:#d9dfeb;background:#172033}.ff-footer-row{display:flex;justify-content:space-between;gap:var(--ff-space-6);align-items:center}.ff-footer p{margin:0;font-size:var(--ff-type-sm)}.ff-footer a{color:#eef1f8}

/* Buttons and forms */
.ff-btn{min-height:var(--ff-control-md);display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.55rem 1rem;color:var(--ff-text-primary);background:transparent;border:1px solid transparent;border-radius:var(--ff-radius-sm);font-size:var(--ff-type-sm);font-weight:700;line-height:1.2;text-decoration:none;cursor:pointer;transition:background var(--ff-motion-fast) var(--ff-ease),border-color var(--ff-motion-fast) var(--ff-ease)}
.ff-btn--primary{color:#fff;background:var(--ff-brand-primary)}.ff-btn--primary:hover{color:#fff;background:var(--ff-brand-primary-hover)}.ff-btn--secondary{background:var(--ff-bg-surface);border-color:var(--ff-border-strong)}.ff-btn--secondary:hover,.ff-btn--ghost:hover{background:var(--ff-bg-subtle)}.ff-btn--ghost{color:var(--ff-text-secondary)}.ff-btn--danger{color:#fff;background:var(--ff-danger-solid)}.ff-btn--danger:hover{color:#fff;background:var(--ff-danger-hover)}.ff-btn--sm{min-height:var(--ff-control-sm);padding:.35rem .7rem}.ff-btn--icon{width:var(--ff-control-md);padding:0}.ff-btn[disabled]{opacity:.58;cursor:not-allowed}
.ff-input,.ff-select{width:100%;min-height:var(--ff-control-md);padding:.55rem .75rem;color:var(--ff-text-primary);background:var(--ff-bg-surface);border:1px solid var(--ff-border-strong);border-radius:var(--ff-radius-sm)}.ff-input:focus,.ff-select:focus{outline:0;border-color:var(--ff-focus);box-shadow:var(--ff-focus-ring)}
.ff-label{display:block;margin-bottom:.35rem;font-size:var(--ff-type-sm);font-weight:700}.ff-help{margin:.35rem 0 0;color:var(--ff-text-muted);font-size:var(--ff-type-caption)}
.ff-check{min-height:2.75rem;display:inline-flex;align-items:center;gap:.5rem}.ff-check input{width:1.15rem;height:1.15rem;accent-color:var(--ff-brand-primary)}
.ff-toggle-label{display:inline-flex;align-items:center;gap:.45rem;min-height:2.75rem;font-size:var(--ff-type-caption);font-weight:650}.ff-toggle{position:relative;width:2.55rem;height:1.4rem;appearance:none;background:var(--ff-border-strong);border:0;border-radius:999px;cursor:pointer}.ff-toggle::after{content:"";position:absolute;width:1rem;height:1rem;top:.2rem;left:.2rem;background:#fff;border-radius:50%;box-shadow:var(--ff-shadow-sm);transition:transform var(--ff-motion-fast)}.ff-toggle:checked{background:var(--ff-brand-primary)}.ff-toggle:checked::after{transform:translateX(1.15rem)}
.ff-badge{display:inline-flex;align-items:center;gap:.38rem;min-height:1.6rem;padding:.18rem .5rem;border-radius:999px;font-size:var(--ff-type-caption);font-weight:750;white-space:nowrap}.ff-badge::before{content:"";width:.38rem;height:.38rem;background:currentColor;border-radius:50%}.ff-badge--success{color:var(--ff-success);background:var(--ff-success-bg)}.ff-badge--warning{color:var(--ff-warning);background:var(--ff-warning-bg)}.ff-badge--premium{color:var(--ff-premium);background:var(--ff-premium-bg)}.ff-badge--neutral{color:var(--ff-text-secondary);background:var(--ff-bg-subtle)}
.ff-panel{background:var(--ff-bg-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-lg);box-shadow:var(--ff-shadow-sm)}
.ff-toast-region{position:fixed;z-index:160;top:5.25rem;right:var(--ff-gutter);display:grid;gap:.5rem;pointer-events:none}.ff-toast{max-width:24rem;padding:.75rem 1rem;color:var(--ff-text-primary);background:var(--ff-bg-surface);border-left:.25rem solid var(--ff-success);border-radius:var(--ff-radius-sm);box-shadow:var(--ff-shadow-lg);font-size:var(--ff-type-sm)}

/* Index */
.ff-index-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ff-space-4);padding-bottom:var(--ff-space-16)}.ff-index-card{display:block;padding:var(--ff-space-6);color:var(--ff-text-primary);text-decoration:none}.ff-index-card:hover{border-color:var(--ff-brand-primary);box-shadow:var(--ff-shadow-md)}.ff-index-card strong{display:block;margin-bottom:.35rem;font-size:var(--ff-type-h4)}.ff-index-card span{color:var(--ff-text-secondary);font-size:var(--ff-type-sm)}

/* Homepage */
.ff-home-main{background:radial-gradient(circle at 72% 22%,rgba(114,86,216,.08),transparent 28rem),radial-gradient(circle at 60% 10%,rgba(40,85,217,.07),transparent 24rem)}
.ff-hero{padding:clamp(3.5rem,7vw,7rem) 0 var(--ff-space-16)}.ff-hero-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(28rem,1.18fr);gap:clamp(2rem,6vw,5rem);align-items:center}.ff-hero h1{margin:0 0 var(--ff-space-5);font-size:var(--ff-type-display);line-height:1.18;letter-spacing:-.045em;white-space:nowrap}.ff-hero-lead{max-width:34rem;margin:0 0 var(--ff-space-6);color:var(--ff-text-secondary);font-size:var(--ff-type-body-lg)}.ff-minor-link{font-size:var(--ff-type-sm);font-weight:650}
.ff-dropzone{min-height:22rem;display:grid;place-items:center;padding:var(--ff-space-8);text-align:center;background:var(--ff-bg-elevated);border:2px dashed var(--ff-dropzone-border);border-radius:var(--ff-radius-lg);box-shadow:var(--ff-shadow-md);transition:background var(--ff-motion-normal),border-color var(--ff-motion-normal)}.ff-dropzone.is-drag{background:var(--ff-dropzone-drag-bg);border-color:var(--ff-brand-primary)}.ff-dropzone h2{margin:.8rem 0 .35rem;font-size:var(--ff-type-h3)}.ff-dropzone p{margin:0 0 1rem;color:var(--ff-text-secondary)}.ff-dropzone .ff-help{display:block;margin-top:.75rem}.ff-drop-icon{width:3.6rem;height:3.6rem;display:grid;place-items:center;margin:auto;color:var(--ff-accent-text);background:var(--ff-selection-bg);border-radius:50%;font-size:1.75rem}.ff-file-input{max-width:100%}
.ff-benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ff-space-8);padding:var(--ff-space-12) 0}.ff-benefit{padding-top:var(--ff-space-4);border-top:1px solid var(--ff-border)}.ff-benefit h2{margin:0 0 .35rem;font-size:var(--ff-type-h4)}.ff-benefit p{margin:0;color:var(--ff-text-secondary);font-size:var(--ff-type-sm)}
.ff-options{padding:var(--ff-space-8) 0 var(--ff-space-12);border-top:1px solid var(--ff-border)}.ff-options>h2{margin:0 0 var(--ff-space-4);font-size:var(--ff-type-h3)}.ff-option-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1rem 0;border-bottom:1px solid var(--ff-border)}.ff-option-row h3,.ff-option-row p{margin:0}.ff-option-row h3{font-size:var(--ff-type-body)}.ff-option-row p{color:var(--ff-text-secondary);font-size:var(--ff-type-sm)}

/* My Files desktop */
.ff-toolbar{display:flex;align-items:center;gap:var(--ff-space-2);margin-bottom:var(--ff-space-4)}.ff-toolbar-search{position:relative;flex:1;min-width:13rem}.ff-toolbar-search .ff-input{padding-left:2.6rem}.ff-search-icon{position:absolute;left:.8rem;top:50%;transform:translateY(-50%);color:var(--ff-text-muted)}.ff-toolbar-filter{width:9.5rem;flex:0 0 9.5rem}.ff-toolbar-sort{width:11rem;flex:0 0 11rem}.ff-toolbar-page{width:7.5rem;flex:0 0 7.5rem}.ff-toolbar-actions{display:flex;gap:var(--ff-space-2)}
.ff-table-wrap{overflow-x:auto;background:var(--ff-bg-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-md)}.ff-file-table{width:100%;min-width:76rem;border-collapse:collapse}.ff-file-table th{padding:.65rem .65rem;color:var(--ff-text-secondary);background:var(--ff-bg-subtle);font-size:.7rem;line-height:1.35;text-align:left;white-space:nowrap}.ff-file-table td{padding:.78rem .65rem;border-top:1px solid var(--ff-border);font-size:.79rem;vertical-align:middle}.ff-file-table tr.is-selected{background:var(--ff-selection-bg)}.ff-file-table tbody tr:hover{background:var(--ff-dropzone-bg)}.ff-file-table tr.is-selected:hover{background:var(--ff-selection-bg)}.ff-file-table input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:var(--ff-brand-primary)}.ff-name{max-width:14rem;font-weight:700;overflow-wrap:anywhere}.ff-folder-icon{color:var(--ff-accent-text);font-size:.8rem}.ff-submeta{display:block;color:var(--ff-text-muted);font-size:.7rem;font-weight:400}.ff-expiry-warn{color:var(--ff-warning);font-weight:700}.ff-help-row{display:flex;gap:.45rem;align-items:flex-start;margin:.75rem .25rem 0;color:var(--ff-text-muted);font-size:var(--ff-type-caption)}
.ff-menu-wrap{position:relative}.ff-menu{position:absolute;z-index:30;right:0;top:calc(100% + .35rem);min-width:13rem;padding:.35rem;background:var(--ff-bg-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-md);box-shadow:var(--ff-shadow-lg)}.ff-menu button{width:100%;min-height:2.4rem;padding:.45rem .65rem;color:var(--ff-text-primary);background:transparent;border:0;border-radius:var(--ff-radius-sm);text-align:left;cursor:pointer}.ff-menu button:hover,.ff-menu button:focus-visible{background:var(--ff-bg-subtle)}.ff-menu .ff-menu-danger{color:var(--ff-danger)}
.ff-selection-bar{position:sticky;z-index:45;left:var(--ff-gutter);right:var(--ff-gutter);bottom:var(--ff-space-4);width:min(calc(100% - 2 * var(--ff-gutter)),70rem);margin:var(--ff-space-6) auto 0;display:flex;align-items:center;gap:var(--ff-space-2);padding:.7rem;background:var(--ff-bg-surface);border:1px solid var(--ff-border-strong);border-radius:var(--ff-radius-lg);box-shadow:var(--ff-shadow-lg)}.ff-selection-count{font-weight:750;white-space:nowrap}.ff-selection-folder{display:flex;align-items:center;gap:.5rem;margin-left:auto}.ff-selection-folder .ff-select{width:10rem;min-height:var(--ff-control-sm)}

/* Mobile My Files */
.ff-mobile-list{display:grid;gap:var(--ff-space-3)}.ff-mobile-file{padding:var(--ff-space-4)}.ff-mobile-file.is-selected{border-color:var(--ff-brand-primary);background:var(--ff-selection-bg)}.ff-mobile-file-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.7rem;align-items:start}.ff-mobile-file-head input{width:1.15rem;height:1.15rem;margin-top:.2rem;accent-color:var(--ff-brand-primary)}.ff-mobile-file-name{margin:0;font-size:var(--ff-type-body);overflow-wrap:anywhere}.ff-mobile-meta{margin:.15rem 0 0;color:var(--ff-text-muted);font-size:var(--ff-type-caption)}.ff-mobile-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem 1rem;margin:.9rem 0;padding-top:.8rem;border-top:1px solid var(--ff-border)}.ff-mobile-details dt{color:var(--ff-text-muted);font-size:.68rem}.ff-mobile-details dd{margin:0;font-size:.78rem;font-weight:650}.ff-mobile-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem}.ff-mobile-only-page .ff-selection-bar{position:fixed;bottom:.65rem;display:grid;grid-template-columns:1fr auto auto auto;width:calc(100% - 1rem);padding:.55rem}.ff-mobile-only-page .ff-selection-folder{grid-column:1/-1;grid-row:2;margin:0}.ff-mobile-only-page .ff-selection-folder label{font-size:.7rem}.ff-mobile-only-page .ff-selection-folder .ff-select{flex:1}.ff-mobile-only-page #ff-main{padding-bottom:9rem}

/* Dialog and export */
dialog.ff-dialog{width:min(calc(100% - 2rem),44rem);max-height:calc(100dvh - 2rem);padding:0;color:var(--ff-text-primary);background:var(--ff-bg-surface);border:0;border-radius:var(--ff-radius-lg);box-shadow:var(--ff-shadow-lg)}dialog.ff-dialog::backdrop{background:var(--ff-overlay)}.ff-dialog-head{display:flex;justify-content:space-between;gap:1rem;align-items:start;padding:1.25rem 1.25rem .75rem}.ff-dialog-head h2{margin:0;font-size:var(--ff-type-h3)}.ff-dialog-head p{margin:.2rem 0 0;color:var(--ff-text-secondary);font-size:var(--ff-type-sm)}.ff-dialog-body{padding:0 1.25rem 1rem}.ff-dialog-close{flex:0 0 auto}.ff-tabs{display:flex;border-bottom:1px solid var(--ff-border)}.ff-tab{min-height:2.75rem;padding:.55rem 1rem;color:var(--ff-text-secondary);background:transparent;border:0;border-bottom:2px solid transparent;font-weight:700;cursor:pointer}.ff-tab[aria-selected=true]{color:var(--ff-accent-text);border-bottom-color:var(--ff-brand-primary)}.ff-export-list{max-height:48vh;overflow-y:auto;padding:.85rem 0}.ff-export-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.3rem .75rem;padding:.85rem 0;border-bottom:1px solid var(--ff-border)}.ff-export-item:last-child{border-bottom:0}.ff-export-item strong{overflow-wrap:anywhere}.ff-export-url{grid-column:1;color:var(--ff-link);font-family:var(--ff-font-mono);font-size:.78rem;overflow-wrap:anywhere}.ff-export-copy{grid-column:2;grid-row:1/3}.ff-dialog-actions{display:flex;justify-content:flex-end;gap:.6rem;padding:1rem 1.25rem;border-top:1px solid var(--ff-border)}

/* Upload */
.ff-upload-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(18rem,.7fr);gap:var(--ff-space-6);align-items:start}.ff-upload-card{padding:var(--ff-space-6)}.ff-state-controls{padding:var(--ff-space-5)}.ff-state-controls h2{margin:0 0 .35rem;font-size:var(--ff-type-h4)}.ff-state-buttons{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1rem}.ff-upload-queue{margin-top:var(--ff-space-5);overflow:hidden;background:var(--ff-bg-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-md)}.ff-upload-row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(9rem,1fr) auto;gap:1rem;align-items:center;padding:1rem;border-bottom:1px solid var(--ff-border)}.ff-upload-row:last-child{border-bottom:0}.ff-upload-name{font-weight:700;overflow-wrap:anywhere}.ff-upload-status{color:var(--ff-text-muted);font-size:var(--ff-type-caption)}.ff-progress{height:.5rem;overflow:hidden;background:var(--ff-progress-track);border-radius:999px}.ff-progress-bar{width:var(--progress,0%);height:100%;background:var(--ff-progress-fill);transition:width var(--ff-motion-slow)}.ff-upload-row.is-failed{background:var(--ff-danger-bg)}.ff-upload-row.is-success{background:var(--ff-success-bg)}

/* Uploader level */
.ff-level-summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1.25rem;align-items:center;padding:var(--ff-space-6)}.ff-level-orb{width:4rem;height:4rem;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--ff-brand-primary),var(--ff-brand-accent));border-radius:50%;font-size:1.35rem;font-weight:800}.ff-level-summary h2,.ff-level-summary p{margin:0}.ff-level-summary p{color:var(--ff-text-secondary)}.ff-level-next{font-size:var(--ff-type-sm);text-align:right}.ff-level-progress{grid-column:2/-1}.ff-level-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-top:var(--ff-space-5)}.ff-metric{padding:1rem}.ff-metric span{display:block;color:var(--ff-text-muted);font-size:var(--ff-type-caption)}.ff-metric strong{display:block;margin-top:.2rem;font-size:1.25rem}.ff-level-table-wrap{margin-top:var(--ff-space-6);overflow-x:auto}.ff-level-table{width:100%;border-collapse:collapse}.ff-level-table th,.ff-level-table td{padding:.85rem 1rem;border-bottom:1px solid var(--ff-border);text-align:left}.ff-level-table th{color:var(--ff-text-secondary);background:var(--ff-bg-subtle);font-size:var(--ff-type-sm)}.ff-level-table tr.is-current{background:var(--ff-selection-bg)}.ff-level-preview{margin-top:var(--ff-space-5);padding:1rem}.ff-level-preview select{width:8rem}.ff-low-note{margin:var(--ff-space-5) 0 0;color:var(--ff-text-muted);font-size:var(--ff-type-caption)}

/* Admin */
.ff-admin-top{min-height:3.5rem;display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;color:#fff;background:#172033}.ff-admin-top strong{font-size:1rem}.ff-admin-layout{display:grid;grid-template-columns:13rem minmax(0,1fr);min-height:calc(100vh - 3.5rem)}.ff-admin-sidebar{padding:.8rem;background:var(--ff-bg-surface);border-right:1px solid var(--ff-border)}.ff-admin-sidebar a{display:block;padding:.55rem .7rem;color:var(--ff-text-secondary);border-radius:var(--ff-radius-sm);font-size:.8rem;text-decoration:none}.ff-admin-sidebar a[aria-current=page]{color:var(--ff-accent-text);background:var(--ff-selection-bg);font-weight:700}.ff-admin-main{padding:1.5rem}.ff-admin-heading{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:1rem}.ff-admin-heading h1{margin:0;font-size:1.45rem}.ff-admin-tabs{display:flex;gap:.25rem;margin-bottom:1rem;border-bottom:1px solid var(--ff-border)}.ff-admin-tab{min-height:2.4rem;padding:.4rem .75rem;color:var(--ff-text-secondary);background:transparent;border:0;border-bottom:2px solid transparent;font-size:.8rem;font-weight:700;cursor:pointer}.ff-admin-tab[aria-selected=true]{color:var(--ff-accent-text);border-bottom-color:var(--ff-brand-primary)}.ff-admin-panel{overflow:hidden;background:var(--ff-bg-surface);border:1px solid var(--ff-border);border-radius:var(--ff-radius-md)}.ff-admin-section-title{padding:.8rem 1rem;background:var(--ff-bg-subtle);border-bottom:1px solid var(--ff-border)}.ff-admin-section-title h2{margin:0;font-size:.95rem}.ff-admin-section-title p{margin:.15rem 0 0;color:var(--ff-text-muted);font-size:.72rem}.ff-admin-row{display:grid;grid-template-columns:minmax(12rem,.8fr) minmax(0,1.2fr);gap:1rem;align-items:center;padding:.7rem 1rem;border-bottom:1px solid var(--ff-border);font-size:.8rem}.ff-admin-row:last-child{border-bottom:0}.ff-admin-row strong{display:block}.ff-admin-row p{margin:.1rem 0 0;color:var(--ff-text-muted);font-size:.7rem}.ff-role-grid{display:grid;grid-template-columns:repeat(4,minmax(8rem,1fr));gap:.75rem}.ff-role-field label{display:block;margin-bottom:.25rem;color:var(--ff-text-secondary);font-size:.72rem;font-weight:700}.ff-role-field .ff-input{min-height:2.25rem;padding:.35rem .55rem}.ff-admin-actions{display:flex;justify-content:flex-end;margin-top:1rem}

/* Correct specificity: mobile trigger declaration comes after all .ff-btn rules. */
.ff-btn.ff-mobile-trigger{display:none;margin-left:auto}

@media(max-width:63.99rem){
  .ff-main-nav{display:none}.ff-btn.ff-mobile-trigger{display:inline-flex}
  .ff-hero-grid,.ff-upload-layout{grid-template-columns:1fr}.ff-hero{padding-top:var(--ff-space-12)}
  .ff-index-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ff-level-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ff-toolbar{flex-wrap:wrap}.ff-toolbar-search{min-width:45%}
  .ff-admin-layout{grid-template-columns:1fr}.ff-admin-sidebar{display:none}.ff-role-grid{grid-template-columns:repeat(2,minmax(8rem,1fr))}
}
@media(max-width:47.99rem){
  .ff-page-head{padding:var(--ff-space-8) 0 var(--ff-space-5)}.ff-page-head h1{font-size:1.75rem}.ff-header-row{gap:.6rem}
  .ff-benefits,.ff-index-grid{grid-template-columns:1fr;gap:var(--ff-space-4)}.ff-benefits{padding:var(--ff-space-8) 0}.ff-option-row{grid-template-columns:1fr}.ff-hero-grid{grid-template-columns:minmax(0,1fr)}.ff-hero h1{font-size:2.55rem}.ff-dropzone{min-height:18rem;padding:1.25rem}
  .ff-breadcrumb-desktop{display:none}.ff-breadcrumb-mobile{display:flex}.ff-toolbar-search,.ff-toolbar-filter{width:100%;min-width:100%;flex-basis:100%}.ff-toolbar-sort,.ff-toolbar-page{width:calc(50% - .25rem);min-width:0;flex:1 1 calc(50% - .25rem)}.ff-toolbar-actions{display:contents}.ff-toolbar>.ff-btn,.ff-toolbar-actions .ff-btn{flex:1;padding-inline:.5rem}
  .ff-selection-bar{flex-wrap:wrap;width:calc(100% - 1rem);bottom:.5rem}.ff-selection-folder{width:100%;order:2;margin-left:0}.ff-selection-folder .ff-select{flex:1}
  dialog.ff-dialog{width:calc(100% - 1rem);max-height:calc(100dvh - 1rem)}.ff-export-list{max-height:50vh}.ff-dialog-actions .ff-btn{flex:1}.ff-export-item{grid-template-columns:minmax(0,1fr) auto}
  .ff-upload-row{grid-template-columns:minmax(0,1fr) auto}.ff-upload-progress{grid-column:1/-1;grid-row:2}.ff-level-summary{grid-template-columns:auto minmax(0,1fr)}.ff-level-next{grid-column:2;text-align:left}.ff-level-progress{grid-column:1/-1}.ff-level-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ff-footer-row{display:grid}.ff-admin-main{padding:.8rem}.ff-admin-heading{align-items:flex-start}.ff-admin-row{grid-template-columns:1fr;gap:.4rem;padding:.65rem}.ff-role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
