:root{--font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--bg: #f6f7f9;--bg-sidebar: #fbfbfc;--surface: #ffffff;--surface-2: #f2f4f7;--surface-3: #e8ebf0;--border: #e6e8ec;--border-strong: #d3d8df;--text: #111827;--text-2: #4b5565;--text-3: #8a94a6;--accent: #1a8ad4;--accent-hover: #1479bd;--accent-text: #1272b3;--accent-soft: rgba(26, 138, 212, .1);--accent-soft-2: rgba(26, 138, 212, .16);--accent-ring: rgba(26, 138, 212, .32);--danger: #e0393e;--danger-soft: rgba(224, 57, 62, .1);--success: #23935a;--warning: #c27410;--warning-soft: rgba(194, 116, 16, .12);--selbar-bg: #141a23;--selbar-text: #f3f5f8;--selbar-hover: rgba(255, 255, 255, .1);--star: #f0a500;--tag-blue: #2f80ed;--tag-green: #1f9d62;--tag-amber: #d39a00;--tag-purple: #8b5cf6;--tag-pink: #e0478f;--tag-teal: #0f9fa8;--tag-orange: #e8711c;--tag-red: #e0393e;--tag-gray: #7b8494;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .05);--shadow-md: 0 4px 12px -2px rgba(16, 24, 40, .08), 0 2px 4px -2px rgba(16, 24, 40, .04);--shadow-lg: 0 16px 40px -8px rgba(16, 24, 40, .18), 0 4px 10px -4px rgba(16, 24, 40, .08);--scrim: rgba(15, 20, 28, .42);--radius-sm: 8px;--radius: 10px;--radius-lg: 14px;--radius-xl: 18px;--sidebar-w: 248px;--topbar-h: 60px;--row-h: 48px;--ease: cubic-bezier(.2, .8, .2, 1);--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);color-scheme:light}:root[data-theme=dark]{--bg: #0e1116;--bg-sidebar: #11151b;--surface: #151a21;--surface-2: #1c222b;--surface-3: #262d38;--border: #232a34;--border-strong: #333b48;--text: #e8ebf0;--text-2: #a6afbd;--text-3: #6c7584;--accent: #3aa3ea;--accent-hover: #59b3f0;--accent-text: #63b7f1;--accent-soft: rgba(58, 163, 234, .13);--accent-soft-2: rgba(58, 163, 234, .2);--accent-ring: rgba(58, 163, 234, .4);--danger: #f2555a;--danger-soft: rgba(242, 85, 90, .14);--success: #3fbf7a;--warning: #e5a443;--warning-soft: rgba(229, 164, 67, .14);--selbar-bg: #252c37;--selbar-text: #eef1f5;--selbar-hover: rgba(255, 255, 255, .08);--star: #f7b928;--tag-blue: #5a9cf5;--tag-green: #3fbf7a;--tag-amber: #e9b52f;--tag-purple: #a78bfa;--tag-pink: #f06aa8;--tag-teal: #2ec4cc;--tag-orange: #f5913f;--tag-red: #f2555a;--tag-gray: #98a1b0;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 14px -2px rgba(0, 0, 0, .45);--shadow-lg: 0 18px 44px -8px rgba(0, 0, 0, .6), 0 4px 10px -4px rgba(0, 0, 0, .4);--scrim: rgba(0, 0, 0, .55);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;font-feature-settings:"cv11","ss01";overflow:hidden}[hidden]{display:none!important}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}h1,h2,h3,p{margin:0}code,kbd{font-family:var(--mono)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#app{height:100%}.fx-svg{width:18px;height:18px;flex:none}.fx-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.fx-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:36px;padding:0 14px;border-radius:var(--radius);border:1px solid transparent;background:var(--surface-2);color:var(--text);font-size:14px;font-weight:500;white-space:nowrap;text-decoration:none;transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease,transform .12s ease}.fx-btn:active:not(:disabled){transform:scale(.98)}.fx-btn:disabled{opacity:.55}.fx-btn-primary{background:var(--accent);color:#fff;box-shadow:0 1px 2px #1018281f,inset 0 1px #ffffff1f}.fx-btn-primary:hover:not(:disabled){background:var(--accent-hover)}.fx-btn-secondary{background:var(--surface);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.fx-btn-secondary:hover:not(:disabled){background:var(--surface-2)}.fx-btn-ghost{background:transparent;color:var(--text-2)}.fx-btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.fx-btn-danger{background:var(--danger);color:#fff}.fx-btn-danger:hover:not(:disabled){filter:brightness(1.06)}.fx-btn-glass{background:#ffffff1f;color:#fff;border-color:#ffffff29}.fx-btn-glass:hover{background:#fff3}.fx-btn-lg{height:46px;font-size:15px;border-radius:12px}.fx-btn-block{width:100%}.fx-icon-btn{display:inline-flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;padding:0;border:0;border-radius:var(--radius);background:transparent;color:var(--text-2);transition:background-color .12s ease,color .12s ease}.fx-icon-btn .fx-svg{width:20px;height:20px}.fx-icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.fx-icon-btn:disabled{opacity:.35}.fx-link{display:inline-flex;align-items:center;gap:6px;padding:0;border:0;background:none;color:var(--accent-text);font-size:13px;font-weight:500;text-decoration:none}.fx-link:hover:not(:disabled){text-decoration:underline}.fx-link:disabled,.fx-link[aria-disabled=true]{opacity:.5}.fx-field{display:flex;flex-direction:column;gap:6px}.fx-field-label{font-size:13px;font-weight:500;color:var(--text-2)}.fx-input{width:100%;height:40px;padding:0 12px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-size:15px;transition:border-color .12s ease,box-shadow .12s ease}.fx-input::placeholder{color:var(--text-3)}.fx-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.fx-input.is-invalid{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.fx-input:disabled{opacity:.6}.fx-input--lg{height:48px;font-size:16px;border-radius:12px;padding:0 14px}.fx-input--code{letter-spacing:.3em;font-variant-numeric:tabular-nums;font-weight:600}.fx-spinner{display:inline-block;width:22px;height:22px;border:2.5px solid var(--accent-soft-2);border-top-color:var(--accent);border-radius:50%;animation:fx-spin .8s linear infinite;flex:none}.fx-spinner--sm{width:16px;height:16px;border-width:2px}@keyframes fx-spin{to{transform:rotate(360deg)}}.fx-splash{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px}.fx-splash-logo{width:64px;height:64px;border-radius:16px;box-shadow:var(--shadow-md)}.auth{min-height:100%;height:100%;overflow-y:auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:18px;padding:calc(24px + var(--safe-t)) 16px calc(24px + var(--safe-b));background:radial-gradient(1200px 600px at 50% -10%,var(--accent-soft-2),transparent 60%),var(--bg)}.auth-card{margin-top:auto;width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-lg);padding:28px;display:flex;flex-direction:column;gap:16px}.auth-brand{display:flex;align-items:center;gap:12px}.auth-logo{width:44px;height:44px;border-radius:12px;box-shadow:var(--shadow-sm)}.auth-brand-name{font-weight:700;font-size:16px;letter-spacing:-.01em}.auth-brand-tag{color:var(--text-3);font-size:12.5px}.auth-header{margin-top:6px}.auth-title{font-size:24px;font-weight:700;letter-spacing:-.02em}.auth-subtitle{margin-top:4px;color:var(--text-2)}.auth-step{align-self:flex-start;padding:3px 10px;border-radius:999px;background:var(--surface-2);color:var(--text-2);font-size:12px;font-weight:600}.auth-status{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--accent-soft);color:var(--text);font-size:13.5px}.auth-status[data-spinner=off] .fx-spinner{display:none}.auth-error{padding:10px 12px;border-radius:12px;background:var(--danger-soft);color:var(--danger);font-size:13.5px;font-weight:500}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.auth-links{display:flex;justify-content:space-between;gap:12px}.auth-hint{font-size:12.5px;color:var(--text-3)}.auth-methods{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:3px;border-radius:12px;background:var(--surface-2)}.auth-method{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:36px;padding:0 10px;border:0;border-radius:9px;background:transparent;color:var(--text-2);font-size:13.5px;font-weight:600;transition:background .15s var(--ease),color .15s var(--ease),box-shadow .15s var(--ease)}.auth-method .fx-svg{width:16px;height:16px}.auth-method:hover:not(:disabled):not(.is-active){color:var(--text)}.auth-method.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm),0 0 0 1px var(--border)}:root[data-theme=dark] .auth-method.is-active{background:var(--surface-3);box-shadow:var(--shadow-sm)}.auth-method:disabled{opacity:.55}.auth-method:focus-visible{outline:2px solid var(--accent-ring);outline-offset:1px}.auth-qr{display:flex;flex-direction:column;align-items:center;gap:12px}.auth-qr-frame{position:relative;width:min(224px,100%);aspect-ratio:1;border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 0 0 1px var(--border),var(--shadow-md)}.auth-qr-code{position:absolute;inset:0;transition:filter .25s var(--ease),opacity .25s var(--ease)}.auth-qr-code:empty{inset:14px;border-radius:10px;background:repeating-conic-gradient(#eef1f5 0 25%,#fff 0 50%) 0 0 / 14px 14px;-webkit-mask:radial-gradient(circle at center,transparent 0 22%,#000 60%);mask:radial-gradient(circle at center,transparent 0 22%,#000 60%);animation:auth-qr-pulse 1.6s ease-in-out infinite}.auth-qr-svg{display:block;width:100%;height:100%}.auth-qr-overlay{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#111827;font-size:13px;font-weight:600;pointer-events:none}.auth-qr-overlay-icon{display:inline-flex}.auth-qr-overlay-icon .fx-spinner{border-color:#1a8ad42e;border-top-color:#1a8ad4}.auth-qr-retry{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);box-shadow:var(--shadow-md)}.auth-qr[data-state=loading] .auth-qr-overlay,.auth-qr[data-state=expired] .auth-qr-overlay,.auth-qr[data-state=scanned] .auth-qr-overlay{display:flex}.auth-qr[data-state=expired] .auth-qr-code{filter:blur(3px);opacity:.35}.auth-qr[data-state=scanned] .auth-qr-code{filter:blur(2px);opacity:.16}.auth-qr[data-state=error] .auth-qr-code,.auth-qr[data-state=paused] .auth-qr-code{filter:blur(5px);opacity:.22;animation:none}.auth-qr[data-state=scanned] .auth-qr-overlay-icon{width:48px;height:48px;align-items:center;justify-content:center;border-radius:50%;background:var(--success);color:#fff;box-shadow:0 6px 16px -4px #23935a80;animation:auth-qr-pop .35s var(--ease)}.auth-qr[data-state=scanned] .auth-qr-overlay-icon .fx-svg{width:26px;height:26px;stroke-width:2.5}.auth-qr-meta{width:min(224px,100%);display:flex;flex-direction:column;align-items:center;gap:7px}.auth-qr-timer{width:100%;height:3px;border-radius:999px;background:var(--surface-3);overflow:hidden;visibility:hidden}.auth-qr[data-state=ready] .auth-qr-timer{visibility:visible}.auth-qr-timer-fill{display:block;height:100%;background:var(--accent);border-radius:inherit;transform-origin:left center;transition:transform .25s linear,background .3s var(--ease)}.auth-qr[data-urgent=true] .auth-qr-timer-fill{background:var(--warning)}.auth-qr-caption{font-size:12.5px;color:var(--text-3);font-variant-numeric:tabular-nums;text-align:center}.auth-qr-steps{align-self:stretch;list-style:none;margin:2px 0 0;padding:0;display:flex;flex-direction:column;gap:8px;counter-reset:auth-qr-step}.auth-qr-steps li{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:20px;color:var(--text-2);counter-increment:auth-qr-step}.auth-qr-steps li:before{content:counter(auth-qr-step);flex:none;width:20px;height:20px;border-radius:50%;background:var(--accent-soft);color:var(--accent-text);font-size:11.5px;font-weight:700;line-height:20px;text-align:center}.auth-qr-steps strong{color:var(--text);font-weight:600}@keyframes auth-qr-pulse{50%{opacity:.55}}@keyframes auth-qr-pop{0%{transform:scale(.6);opacity:0}}.auth-footer{margin-bottom:auto;max-width:360px;text-align:center;font-size:12.5px;color:var(--text-3)}.fx-shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);height:100%;height:100dvh}.fx-sidebar{display:flex;flex-direction:column;gap:4px;min-height:0;padding:14px 12px calc(12px + var(--safe-b));background:var(--bg-sidebar);border-right:1px solid var(--border);overflow-y:auto}.fx-brand{display:flex;align-items:center;gap:10px;padding:4px 6px 14px}.fx-brand-logo{width:30px;height:30px;border-radius:8px;box-shadow:var(--shadow-sm)}.fx-brand-name{flex:1;font-weight:700;font-size:15px;letter-spacing:-.01em}.fx-new-btn{justify-content:flex-start;height:40px;margin-bottom:10px;padding:0 14px;border-radius:12px}.fx-nav{display:flex;flex-direction:column;gap:1px}.fx-nav-item{display:flex;align-items:center;gap:10px;width:100%;height:36px;padding:0 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-2);font-size:13.5px;font-weight:500;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background-color .12s ease,color .12s ease}.fx-nav-item .fx-svg{color:var(--text-3)}.fx-nav-item:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.fx-nav-item.is-active{background:var(--accent-soft);color:var(--accent-text)}.fx-nav-item.is-active .fx-svg{color:var(--accent-text)}.fx-nav-item:disabled{opacity:.6}.fx-nav-switch{height:auto;min-height:42px;padding-top:5px;padding-bottom:5px}.fx-nav-text{display:flex;flex-direction:column;min-width:0;line-height:1.25}.fx-nav-label,.fx-nav-state{overflow:hidden;text-overflow:ellipsis}.fx-nav-state{color:var(--text-3);font-size:11.5px;font-weight:500}.fx-nav-state[data-tone=on]{color:var(--accent-text)}.fx-nav-state[data-tone=blocked]{color:var(--danger)}.fx-nav-section{margin:16px 10px 6px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}.fx-sidebar-foot{margin-top:auto;padding-top:12px;display:flex;flex-direction:column;gap:6px}.fx-account{display:flex;align-items:center;gap:10px;padding:8px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.fx-avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--accent-soft);color:var(--accent-text);flex:none}.fx-avatar .fx-svg{width:16px;height:16px}.fx-account-text{display:flex;flex-direction:column;min-width:0;flex:1}.fx-account-label{font-size:11.5px;color:var(--text-3)}.fx-account-phone{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-donate{padding:0 6px;font-size:12px;color:var(--text-3)}.fx-donate summary{display:flex;align-items:center;gap:6px;padding:6px 4px;cursor:pointer;list-style:none}.fx-donate summary::-webkit-details-marker{display:none}.fx-donate summary .fx-svg{width:14px;height:14px}.fx-donate p{margin:2px 4px 4px}.fx-donate code{display:block;margin:0 4px 6px;padding:8px;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-2);font-size:11px;word-break:break-all;-webkit-user-select:all;user-select:all}.fx-scrim{position:fixed;inset:0;z-index:60;background:var(--scrim);animation:fx-fade .16s ease both}.fx-only-compact{display:none}.fx-main{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg)}.fx-topbar{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(180px,300px) auto;grid-template-areas:"menu loc search tools";align-items:center;gap:10px;min-height:var(--topbar-h);padding:10px 20px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(160%) blur(12px);-webkit-backdrop-filter:saturate(160%) blur(12px);position:relative;z-index:10}.fx-tb-menu{grid-area:menu;display:none}.fx-tb-location{grid-area:loc;display:flex;align-items:center;gap:4px;min-width:0}.fx-tb-search{grid-area:search}.fx-tb-tools{grid-area:tools;display:flex;align-items:center;gap:8px}.fx-crumbs{display:flex;align-items:center;gap:2px;min-width:0;overflow-x:auto;scrollbar-width:none;mask-image:linear-gradient(to right,transparent 0,#000 12px,#000 100%);-webkit-mask-image:linear-gradient(to right,transparent 0,#000 12px,#000 100%);padding-left:4px}.fx-crumbs::-webkit-scrollbar{display:none}.fx-crumb{display:inline-flex;align-items:center;gap:6px;flex:none;max-width:220px;height:32px;padding:0 8px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-2);font-size:15px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fx-crumb:hover{background:var(--surface-2);color:var(--text)}.fx-crumb.is-current{color:var(--text);font-weight:650;font-size:17px;letter-spacing:-.01em;cursor:default}.fx-crumb.is-current:hover{background:transparent}.fx-crumb-sep{flex:none;display:inline-flex;color:var(--text-3)}.fx-crumb-sep .fx-svg{width:16px;height:16px}.fx-search{position:relative;display:flex;align-items:center;height:38px;padding:0 8px 0 12px;gap:8px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);color:var(--text-3);transition:border-color .12s ease,box-shadow .12s ease}.fx-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.fx-search-input{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:14px}.fx-search-input::placeholder{color:var(--text-3)}.fx-search-input::-webkit-search-cancel-button{display:none}.fx-search-clear{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:0;border-radius:50%;background:var(--surface-3);color:var(--text-2)}.fx-search-clear .fx-svg{width:14px;height:14px}.fx-search-kbd{padding:1px 6px;border-radius:5px;border:1px solid var(--border-strong);color:var(--text-3);font-size:11px}.fx-search:focus-within .fx-search-kbd,.fx-search-clear:not([hidden])~.fx-search-kbd{display:none}.fx-search--inline{margin-bottom:8px}.fx-sort{position:relative;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 10px;border-radius:var(--radius);color:var(--text-2);cursor:pointer;transition:background-color .12s ease}.fx-sort:hover{background:var(--surface-2);color:var(--text)}.fx-sort select{appearance:none;-webkit-appearance:none;border:0;background:transparent;font-size:13.5px;font-weight:500;color:inherit;cursor:pointer;outline:none;padding-right:2px}.fx-sort:focus-within{box-shadow:0 0 0 2px var(--accent-ring)}.fx-sort select option{background:var(--surface);color:var(--text)}.fx-segmented{display:inline-flex;padding:3px;gap:2px;border-radius:var(--radius);background:var(--surface-2)}.fx-seg-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:30px;border:0;border-radius:7px;background:transparent;color:var(--text-3)}.fx-seg-btn .fx-svg{width:17px;height:17px}.fx-seg-btn:hover{color:var(--text)}.fx-seg-btn.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.fx-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:8px 20px 28px;scroll-padding-top:48px}.fx-list{--cols: 40px minmax(0, 1fr) 110px 170px 44px}.fx-list-head,.fx-row{display:grid;grid-template-columns:var(--cols);align-items:center}.fx-list-head{position:sticky;top:-8px;z-index:2;height:38px;margin:0 -8px;padding:0 8px;background:var(--bg);border-bottom:1px solid var(--border);color:var(--text-3);font-size:12px;font-weight:600}.fx-cell{min-width:0;padding:0 8px}.fx-cell-size,.fx-cell-date{color:var(--text-2);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.fx-list-head .fx-cell-size,.fx-list-head .fx-cell-date{color:var(--text-3);font-size:12px}.fx-cell-check,.fx-cell-more{display:flex;align-items:center;justify-content:center;padding:0}.fx-rows{display:flex;flex-direction:column;gap:1px;padding-top:4px}.fx-row{position:relative;height:var(--row-h);margin:0 -8px;padding:0 8px;border-radius:var(--radius);cursor:default;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;transition:background-color 90ms ease;outline:none}.fx-row:hover{background:var(--surface-2)}.fx-row.is-focused{box-shadow:inset 0 0 0 2px var(--accent-ring)}.fx-row.selected,.fx-row.selected:hover{background:var(--accent-soft-2)}.fx-name-cell{display:flex;align-items:center;gap:12px}.fx-name-wrap{display:flex;flex-direction:column;min-width:0;flex:1}.fx-name-line{display:flex;align-items:center;gap:8px;min-width:0}.fx-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;color:var(--text)}.fx-row[data-kind=folder] .fx-name{font-weight:600}.fx-sub{display:none;min-width:0;color:var(--text-3);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-sub.is-path{display:block}.fx-badge{flex:none;display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.01em}.fx-badge--incomplete{background:var(--warning-soft);color:var(--warning)}.fx-badge--missing{background:var(--danger-soft);color:var(--danger)}.fx-check{position:relative;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border-radius:5px;border:1.5px solid var(--border-strong);background:var(--surface);color:#fff;opacity:0;transition:opacity .1s ease,background-color .1s ease,border-color .1s ease}.fx-check:after{content:"";position:absolute;inset:-12px}.fx-check .fx-svg{width:12px;height:12px;stroke-width:3.2;opacity:0}.fx-row:hover .fx-check,.fx-tile:hover .fx-check,.fx-check:focus-visible,.fx-check[aria-checked=true],.fx-check[aria-checked=mixed],.fx-list-head .fx-check,.fx-selecting .fx-check{opacity:1}.fx-check[aria-checked=true],.fx-check[aria-checked=mixed]{background:var(--accent);border-color:var(--accent)}.fx-check[aria-checked=true] .fx-svg{opacity:1}.fx-check[aria-checked=mixed]:before{content:"";width:8px;height:2px;border-radius:2px;background:#fff}.fx-more{opacity:0;width:32px;height:32px}.fx-row:hover .fx-more,.fx-row.selected .fx-more,.fx-row.is-focused .fx-more,.fx-more:focus-visible,.fx-more[aria-expanded=true]{opacity:1}.fx-ficon{--tint: #6b7686;display:inline-flex;align-items:center;justify-content:center;flex:none;width:34px;height:34px;border-radius:9px;color:var(--tint);background:color-mix(in srgb,var(--tint) 13%,transparent)}.fx-ficon .fx-svg{width:18px;height:18px}.fx-ficon--folder{--tint: #e3a008}.fx-ficon--folder .fx-svg{fill:color-mix(in srgb,var(--tint) 30%,transparent)}.fx-ficon--image{--tint: #8b5cf6}.fx-ficon--video{--tint: #ef4444}.fx-ficon--audio{--tint: #ec4899}.fx-ficon--doc{--tint: #3b82f6}.fx-ficon--archive{--tint: #d97706}.fx-ficon--code{--tint: #10b981}.fx-ficon--lg{width:64px;height:64px;border-radius:18px}.fx-ficon--lg .fx-svg{width:32px;height:32px;stroke-width:1.7}.fx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(156px,1fr));gap:12px;padding-top:12px}.fx-tile{position:relative;display:flex;flex-direction:column;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);overflow:hidden;cursor:default;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;transition:border-color .12s ease,box-shadow .16s ease,transform .16s var(--ease);outline:none}.fx-tile:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.fx-tile.is-focused{box-shadow:0 0 0 2px var(--accent-ring)}.fx-tile.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.fx-tile-art{display:flex;align-items:center;justify-content:center;aspect-ratio:4 / 3;background:var(--surface-2)}.fx-tile.selected .fx-tile-art{background:var(--accent-soft-2)}.fx-tile-body{padding:10px 12px 12px;min-width:0}.fx-tile-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-weight:500;font-size:13px;line-height:1.35;min-height:35.1px;word-break:break-word}.fx-tile[data-kind=folder] .fx-tile-name{font-weight:600}.fx-tile-meta{display:flex;align-items:center;gap:6px;margin-top:4px;color:var(--text-3);font-size:12px;white-space:nowrap;overflow:hidden}.fx-tile .fx-check{position:absolute;top:10px;left:10px;width:20px;height:20px}.fx-tile .fx-more{position:absolute;top:6px;right:6px;background:color-mix(in srgb,var(--surface) 85%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.fx-tile:hover .fx-more,.fx-tile.selected .fx-more,.fx-tile.is-focused .fx-more{opacity:1}.fx-tile-art{position:relative}.fx-tile-art .fx-badge{position:absolute;left:10px;bottom:8px}.fx-skeleton{pointer-events:none}.fx-skel{display:block;border-radius:6px;background:linear-gradient(90deg,var(--surface-2) 0%,var(--surface-3) 50%,var(--surface-2) 100%);background-size:200% 100%;animation:fx-shimmer 1.3s ease-in-out infinite}.fx-skel-icon{width:34px;height:34px;border-radius:9px;flex:none}.fx-skel-line{height:10px}@keyframes fx-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.fx-tile.fx-skeleton .fx-tile-art{background:none}.fx-tile.fx-skeleton .fx-tile-art .fx-skel{width:100%;height:100%;border-radius:0}.fx-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:72px 16px;color:var(--text-2)}.fx-empty-art{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;margin-bottom:6px;border-radius:22px;background:var(--accent-soft);color:var(--accent-text)}.fx-empty-art .fx-svg{width:32px;height:32px;stroke-width:1.7}.fx-empty h2{font-size:17px;font-weight:650;color:var(--text)}.fx-empty p{max-width:340px;font-size:13.5px}.fx-empty-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:10px}.fx-pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:12px;color:var(--text-3);font-size:12.5px;font-variant-numeric:tabular-nums}.fx-pager.is-single .fx-pager-buttons{display:none}.fx-pager-buttons{display:inline-flex;gap:2px}.fx-pager .fx-icon-btn{width:32px;height:32px}.fx-selbar{position:fixed;z-index:40;left:calc(var(--sidebar-w) + (100vw - var(--sidebar-w)) / 2);bottom:calc(20px + var(--safe-b));transform:translate(-50%);display:flex;align-items:center;gap:6px;max-width:calc(100vw - var(--sidebar-w) - 32px);padding:6px;border-radius:14px;background:var(--selbar-bg);color:var(--selbar-text);box-shadow:var(--shadow-lg);animation:fx-rise .2s var(--ease) both}.fx-selbar .fx-icon-btn{color:inherit;opacity:.8}.fx-selbar .fx-icon-btn:hover{background:var(--selbar-hover);color:inherit;opacity:1}.fx-selbar-info{display:flex;align-items:center;gap:4px;padding-right:8px;margin-right:2px;border-right:1px solid rgba(255,255,255,.14);white-space:nowrap}.fx-selbar-count{font-weight:600;font-size:13.5px;padding:0 4px;font-variant-numeric:tabular-nums}.fx-selbar-all{display:none}.fx-selbar-actions{display:flex;align-items:center;gap:2px;overflow-x:auto;scrollbar-width:none}.fx-sel-action{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 11px;border:0;border-radius:9px;background:transparent;color:inherit;font-size:13px;font-weight:500;white-space:nowrap}.fx-sel-action:hover:not(:disabled){background:var(--selbar-hover)}.fx-sel-action:disabled{opacity:.45}.fx-sel-action.is-danger{color:#ff8a8d}.fx-sel-action .fx-svg{width:17px;height:17px}@keyframes fx-rise{0%{opacity:0;transform:translate(-50%,12px) scale(.98)}}.fx-fab{display:none;position:fixed;z-index:30;right:18px;bottom:calc(18px + var(--safe-b));width:56px;height:56px;align-items:center;justify-content:center;border:0;border-radius:18px;background:var(--accent);color:#fff;box-shadow:0 10px 24px -6px color-mix(in srgb,var(--accent) 60%,transparent),var(--shadow-md);transition:transform .16s var(--ease),opacity .16s ease}.fx-fab .fx-svg{width:26px;height:26px}.fx-fab:active{transform:scale(.94)}.fx-drop{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:24px;background:color-mix(in srgb,var(--accent) 12%,var(--scrim));-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:none;animation:fx-fade .12s ease both}.fx-drop-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:36px 48px;border-radius:22px;border:2px dashed var(--accent);background:var(--surface);box-shadow:var(--shadow-lg);text-align:center}.fx-drop-card>.fx-svg{width:40px;height:40px;color:var(--accent);margin-bottom:4px}.fx-drop-title{font-weight:650;font-size:17px}.fx-drop-sub{color:var(--text-2)}.fx-toast{position:fixed;left:50%;bottom:calc(84px + var(--safe-b) + var(--action-toast-offset, 0px));z-index:3000;max-width:min(92vw,520px);padding:10px 16px;border-radius:12px;background:var(--selbar-bg);color:var(--selbar-text);font-size:13.5px;font-weight:500;box-shadow:var(--shadow-lg);opacity:0;transform:translate(-50%,10px) scale(.98);pointer-events:none;transition:opacity .18s ease,transform .22s var(--ease)}.fx-toast.is-visible{opacity:1;transform:translate(-50%) scale(1)}.fx-toast[data-tone=error]{background:var(--danger);color:#fff}.fx-toast[data-tone=success]{background:var(--success);color:#fff}.fx-atoast{position:fixed;left:50%;bottom:calc(84px + var(--safe-b));z-index:3001;display:flex;align-items:center;gap:4px;min-width:min(92vw,300px);max-width:min(92vw,560px);min-height:46px;padding:5px 6px 5px 16px;overflow:hidden;border-radius:12px;background:var(--selbar-bg);color:var(--selbar-text);font-size:13.5px;font-weight:500;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translate(-50%,10px) scale(.98);pointer-events:none;transition:opacity .18s ease,transform .22s var(--ease),visibility 0s linear .22s}.fx-atoast.is-visible{opacity:1;visibility:visible;transform:translate(-50%) scale(1);pointer-events:auto;transition:opacity .18s ease,transform .22s var(--ease),visibility 0s}:root[data-theme=dark] .fx-atoast{box-shadow:var(--shadow-lg),inset 0 0 0 1px #ffffff12}.fx-atoast[data-tone=error]{background:var(--danger);color:#fff}.fx-atoast-lead{display:inline-flex;flex:none;margin-right:6px}.fx-atoast-lead .fx-svg{width:17px;height:17px}.fx-atoast[data-tone=success] .fx-atoast-lead{color:var(--success)}.fx-atoast .fx-spinner{border-color:#ffffff38;border-top-color:var(--selbar-text)}.fx-atoast-msg{flex:1 1 auto;min-width:0;padding:6px 8px 6px 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.fx-atoast-action{flex:none;height:34px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:color-mix(in srgb,var(--accent) 55%,#ffffff);font:inherit;font-weight:650;letter-spacing:.01em;cursor:pointer}.fx-atoast[data-tone=error] .fx-atoast-action{color:#fff;text-decoration:underline}.fx-atoast-action:hover,.fx-atoast-close:hover{background:var(--selbar-hover)}.fx-atoast-action:focus-visible,.fx-atoast-close:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 70%,#ffffff);outline-offset:-2px}.fx-atoast-close{flex:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:inherit;opacity:.7;cursor:pointer}.fx-atoast-close:hover{opacity:1}.fx-atoast-close .fx-svg{width:16px;height:16px}.fx-atoast-action[hidden],.fx-atoast-close[hidden],.fx-atoast-lead[hidden],.fx-atoast-timer[hidden]{display:none}.fx-atoast-timer{position:absolute;left:0;right:0;bottom:0;height:2px;background:#ffffff1a}.fx-atoast-timer>span{display:block;height:100%;background:color-mix(in srgb,var(--accent) 65%,#ffffff);transform-origin:left center}.fx-atoast.is-paused .fx-atoast-timer>span{animation-play-state:paused!important}@keyframes fx-atoast-drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media(min-width:901px){body:has(#fileBrowser:not([hidden])) .fx-toast,body:has(#fileBrowser:not([hidden])) .fx-atoast{left:calc(var(--sidebar-w) + (100vw - var(--sidebar-w)) / 2)}}.fx-row.is-restored,.fx-tile.is-restored{animation:fx-restored 1.4s ease-out}@keyframes fx-restored{0%{background-color:var(--accent-soft-2)}}.fx-dialog-backdrop{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--scrim);opacity:0;transition:opacity .16s ease}.fx-dialog-backdrop.is-open{opacity:1}.fx-dialog{width:min(440px,100%);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;gap:16px;padding:20px;border-radius:var(--radius-xl);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-lg);transform:translateY(8px) scale(.98);transition:transform .2s var(--ease)}.fx-dialog-backdrop.is-open .fx-dialog{transform:none}.fx-dialog-head{display:flex;align-items:flex-start;gap:14px}.fx-dialog-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;border-radius:12px;background:var(--accent-soft);color:var(--accent-text)}.fx-dialog-icon.is-danger{background:var(--danger-soft);color:var(--danger)}.fx-dialog-titles{min-width:0;padding-top:1px}.fx-dialog h2{font-size:16.5px;font-weight:650;letter-spacing:-.01em}.fx-dialog-titles p{margin-top:4px;color:var(--text-2);font-size:13.5px;overflow-wrap:anywhere}.fx-dialog-actions{display:flex;justify-content:flex-end;gap:8px}.fx-choice-list{display:flex;flex-direction:column;gap:2px;max-height:min(360px,50dvh);overflow-y:auto;margin:0 -6px;padding:2px 6px;outline:none}.fx-choice{display:flex;align-items:center;gap:10px;width:100%;min-height:42px;padding:6px 10px;border:0;border-radius:var(--radius);background:transparent;text-align:left}.fx-choice:hover{background:var(--surface-2)}.fx-choice.is-selected{background:var(--accent-soft)}.fx-choice-icon{display:inline-flex;color:#e3a008}.fx-choice-icon .fx-svg{fill:#e3a00840}.fx-choice-text{flex:1;min-width:0;display:flex;flex-direction:column}.fx-choice-label{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-choice-detail{font-size:12px;color:var(--text-3)}.fx-choice-check{display:inline-flex;color:var(--accent);opacity:0}.fx-choice.is-selected .fx-choice-check{opacity:1}.fx-choice-empty{padding:20px;text-align:center;color:var(--text-3)}.fx-menu-layer{position:fixed;inset:0;z-index:1500}.fx-menu{position:fixed;min-width:232px;max-width:min(320px,calc(100vw - 16px));padding:6px;border-radius:12px;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-lg);opacity:0;transform:scale(.97) translateY(-4px);transform-origin:top right;transition:opacity .12s ease,transform .16s var(--ease)}.fx-menu-layer.is-open .fx-menu{opacity:1;transform:none}.fx-menu-layer.is-closing .fx-menu{opacity:0}.fx-menu-header{display:flex;align-items:center;gap:12px;padding:8px 10px 10px;margin-bottom:4px;border-bottom:1px solid var(--border)}.fx-menu-titles{min-width:0}.fx-menu-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-menu-subtitle{color:var(--text-3);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-menu-items{display:flex;flex-direction:column}.fx-menu-item{display:flex;align-items:center;gap:12px;width:100%;height:36px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--text);font-size:13.5px;text-align:left;outline:none}.fx-menu-item .fx-svg{color:var(--text-2)}.fx-menu-item:hover:not(:disabled),.fx-menu-item:focus-visible{background:var(--surface-2)}.fx-menu-item:disabled{opacity:.45}.fx-menu-item.is-danger,.fx-menu-item.is-danger .fx-svg{color:var(--danger)}.fx-menu-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-menu-hint{color:var(--text-3);font-size:11px;font-family:var(--font)}.fx-menu-divider{height:1px;margin:5px 4px;background:var(--border)}.fx-sheet-grip{display:none}.fx-menu-layer.is-sheet{background:var(--scrim);opacity:0;transition:opacity .18s ease}.fx-menu-layer.is-sheet.is-open{opacity:1}.fx-menu-layer.is-sheet .fx-menu{left:50%;right:auto;bottom:calc(16px + var(--safe-b));width:min(420px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 48px);overflow-y:auto;padding:8px;border-radius:18px;transform:translate(-50%,24px);opacity:1;transition:transform .24s var(--ease)}.fx-menu-layer.is-sheet.is-open .fx-menu{transform:translate(-50%)}.fx-menu-layer.is-sheet.is-closing .fx-menu{transform:translate(-50%,110%)}.fx-menu-layer.is-sheet .fx-menu-item{height:46px;font-size:15px;gap:14px;padding:0 12px}.fx-menu-layer.is-sheet .fx-menu-item .fx-svg{width:20px;height:20px}.fx-menu-layer.is-sheet .fx-menu-header{padding:6px 10px 12px}.fx-menu-layer.is-sheet .fx-menu-hint{display:none}@keyframes fx-fade{0%{opacity:0}}@keyframes fx-pop{0%{opacity:0;transform:translateY(8px) scale(.98)}}.preview-modal{position:fixed;inset:0;z-index:2500;color:#fff}.preview-backdrop{position:absolute;inset:0;background:#05070af0;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);animation:fx-fade .18s ease both}.preview-content{position:absolute;inset:0;display:flex;flex-direction:column;pointer-events:none}.preview-content>*{pointer-events:auto}.preview-header{display:flex;align-items:center;gap:12px;padding:calc(12px + var(--safe-t)) 16px 12px 20px;background:linear-gradient(to bottom,rgba(0,0,0,.5),transparent)}.preview-info{flex:1;min-width:0}.preview-info h3{font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-info p{margin-top:2px;font-size:12.5px;opacity:.65}.preview-counter{font-size:12.5px;opacity:.65;font-variant-numeric:tabular-nums}.preview-close,.preview-nav{display:inline-flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;padding:0;border:1px solid rgba(255,255,255,.1);border-radius:50%;background:#ffffff1a;color:#fff;transition:background-color .12s ease}.preview-close:hover,.preview-nav:hover{background:#fff3}.preview-close .fx-svg,.preview-nav .fx-svg{width:20px;height:20px}.preview-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:0 72px calc(24px + var(--safe-b));pointer-events:none}.preview-stage>*{pointer-events:auto}.preview-nav{position:absolute;top:50%;width:44px;height:44px;transform:translateY(-50%)}.preview-nav--prev{left:16px}.preview-nav--next{right:16px}.preview-loading{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;max-width:360px}.preview-loading .spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.16);border-top-color:#fff;border-radius:50%;animation:fx-spin .8s linear infinite}.preview-loading p{opacity:.85;overflow-wrap:anywhere}.preview-progress{width:240px;height:4px;border-radius:999px;background:#ffffff29;overflow:hidden}.preview-progress-fill{height:100%;background:#fff;transition:width .12s ease}.preview-media{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.preview-media img,.preview-media video{max-width:100%;max-height:100%;border-radius:10px;box-shadow:0 20px 60px #00000080;object-fit:contain}.preview-media video{background:#000}.preview-media audio{width:min(520px,100%)}.fx-tray{position:fixed;z-index:45;right:20px;bottom:calc(20px + var(--safe-b));width:min(380px,calc(100vw - 32px));transition:bottom .24s var(--ease)}.fx-selecting .fx-tray{bottom:calc(84px + var(--safe-b))}.fx-tray-scrim,.fx-tray-grip{display:none}.fx-tray-panel{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg);overflow:hidden;animation:fx-tray-in .28s var(--ease) both}.fx-tray-head{display:flex;align-items:center;gap:2px;padding:8px 8px 8px 6px}.fx-tray-summary{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:4px 6px;border:0;border-radius:var(--radius);background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer}.fx-tray-summary:hover{background:var(--surface-2)}.fx-tray-summary:focus-visible,.fx-tray-act:focus-visible,.fx-tray-toggle:focus-visible,.fx-tray-close:focus-visible{outline:2px solid var(--accent-ring);outline-offset:1px}.fx-tray-ring{--ring: var(--accent);position:relative;flex:none;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;color:var(--accent-text)}.fx-tray-ring>svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.fx-tray-ring-track{fill:color-mix(in srgb,var(--ring) 10%,transparent);stroke:var(--surface-3);stroke-width:3}.fx-tray-ring-arc{fill:none;stroke:var(--ring);stroke-width:3;stroke-linecap:round;transition:stroke-dashoffset .36s var(--ease),stroke .2s ease}.fx-tray-ring-icon{position:relative;display:inline-flex}.fx-tray-ring-icon .fx-svg{width:16px;height:16px;stroke-width:2.4}.fx-tray-ring[data-tone=success]{--ring: var(--success);color:var(--success)}.fx-tray-ring[data-tone=error]{--ring: var(--danger);color:var(--danger)}.fx-tray-ring[data-tone=warning]{--ring: var(--warning);color:var(--warning)}.fx-tray-ring[data-tone=idle]{--ring: var(--text-3);color:var(--text-3)}.fx-tray-ring[data-tone=busy] .fx-tray-ring-icon{animation:fx-tray-bob 1.6s ease-in-out infinite}.fx-tray-titles{display:flex;flex-direction:column;min-width:0;line-height:1.3}.fx-tray-title{overflow:hidden;font-size:13.5px;font-weight:600;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.fx-tray-sub{overflow:hidden;color:var(--text-3);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.fx-tray-toggle,.fx-tray-close{width:32px;height:32px}.fx-tray-toggle .fx-svg,.fx-tray-close .fx-svg{width:18px;height:18px}.fx-tray-extras{display:inline-flex;align-items:center;flex:none}.fx-tray-extras:empty{display:none}.fx-tray-wake{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--text-3);animation:fx-fade .24s ease both}.fx-tray-wake .fx-svg{width:15px;height:15px}.fx-tray-notices{display:flex;flex-direction:column;gap:6px;padding:0 10px 10px}.fx-tray-notices:empty{display:none}.fx-tray-notice{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:9px 10px 9px 12px;border-radius:var(--radius);background:var(--surface-2);color:var(--text-2);font-size:12.5px;line-height:1.4;animation:fx-tray-row-in .24s var(--ease) both}.fx-tray-notice-icon{display:inline-flex;flex:none;color:var(--accent-text)}.fx-tray-notice-icon .fx-svg{width:16px;height:16px}.fx-tray-notice-text{flex:1 1 170px;min-width:0}.fx-tray-notice-actions{display:inline-flex;align-items:center;gap:4px;margin-left:auto}.fx-tray-notice .fx-btn{height:28px;padding:0 10px;font-size:12.5px}.fx-tray-notice .fx-link{padding:4px 2px;font-size:12.5px}.fx-tray-meter{height:3px;margin:-3px 0 0;background:transparent;opacity:0;transition:opacity .2s ease}.fx-tray[data-state=collapsed][data-tone=busy] .fx-tray-meter{opacity:1}.fx-tray-meter-fill{height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left center;transition:transform .36s var(--ease)}.fx-tray-body{display:grid;grid-template-rows:1fr;transition:grid-template-rows .28s var(--ease)}.fx-tray[data-state=collapsed] .fx-tray-body{grid-template-rows:0fr}.fx-tray-body-inner{min-height:0;overflow:hidden}.fx-tray-list{max-height:min(340px,52vh);margin:0;padding:4px 6px;border-top:1px solid var(--border);list-style:none;overflow-y:auto;overscroll-behavior:contain}.fx-tray-row{display:flex;align-items:center;gap:11px;padding:8px 6px 8px 8px;border-radius:var(--radius);animation:fx-tray-row-in .24s var(--ease) both}.fx-tray-row:hover{background:var(--surface-2)}.fx-tray-row[data-status=failed]{cursor:pointer}.fx-tray-ficon{position:relative;flex:none;display:inline-flex}.fx-tray-ficon .fx-ficon{width:32px;height:32px}.fx-tray-row[data-status=queued] .fx-tray-ficon,.fx-tray-row[data-status=cancelled] .fx-tray-ficon{opacity:.55}.fx-tray-dir{position:absolute;right:-4px;bottom:-4px;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--accent);color:#fff;box-shadow:0 0 0 2px var(--surface)}.fx-tray-row:hover .fx-tray-dir{box-shadow:0 0 0 2px var(--surface-2)}.fx-tray-dir .fx-svg{width:10px;height:10px;stroke-width:3}.fx-tray-row[data-status=done] .fx-tray-dir{background:var(--success)}.fx-tray-row[data-status=failed] .fx-tray-dir{background:var(--danger)}.fx-tray-row[data-status=queued] .fx-tray-dir,.fx-tray-row[data-status=cancelled] .fx-tray-dir{background:var(--text-3)}.fx-tray-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.fx-tray-name{overflow:hidden;font-size:13px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.fx-tray-row[data-status=queued] .fx-tray-name,.fx-tray-row[data-status=cancelled] .fx-tray-name{color:var(--text-2)}.fx-tray-bar{display:none;height:4px;margin:2px 0 1px;border-radius:999px;background:var(--surface-3);overflow:hidden}.fx-tray-row[data-status=active] .fx-tray-bar{display:block}.fx-tray-bar-fill{width:100%;height:100%;border-radius:inherit;background:var(--accent);transform:scaleX(0);transform-origin:left center;transition:transform .32s var(--ease),background-color .2s ease}.fx-tray-row.is-cancelling .fx-tray-bar-fill{background:var(--text-3)}.fx-tray-status,.fx-tray-detail{overflow:hidden;color:var(--text-3);font-size:12px;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.fx-tray-detail{font-size:11.5px}.fx-tray-detail:empty{display:none}.fx-tray-row[data-status=failed] .fx-tray-status{color:var(--danger)}.fx-tray-row[data-status=done][data-tone=warning] .fx-tray-status{color:var(--warning)}.fx-tray-error{display:none;margin-top:4px;padding:6px 8px;border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--text);font-size:12px;white-space:pre-wrap;word-break:break-word}.fx-tray-row.is-expanded .fx-tray-error{display:block}.fx-tray-actions{flex:none;display:flex;align-items:center;gap:2px}.fx-tray-act{width:30px;height:30px}.fx-tray-act .fx-svg{width:16px;height:16px}.fx-tray-act[data-act=cancel]:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.fx-tray-act:disabled{opacity:.4}@media(hover:hover){.fx-tray-act[data-act=copy]{opacity:0;transition:opacity .12s ease,background-color .12s ease}.fx-tray-row:hover .fx-tray-act[data-act=copy],.fx-tray-act[data-act=copy]:focus-visible{opacity:1}}.fx-tray-state{display:inline-flex;width:22px;justify-content:center}.fx-tray-state:empty{display:none}.fx-tray-state .fx-svg{width:18px;height:18px}.fx-tray-row[data-status=done] .fx-tray-state{color:var(--success)}.fx-tray-row[data-status=done][data-tone=warning] .fx-tray-state{color:var(--warning)}.fx-tray-row[data-status=failed] .fx-tray-state{color:var(--danger)}.fx-tray-row[data-status=cancelled] .fx-tray-state{color:var(--text-3)}.fx-tray-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:38px;padding:4px 8px 6px 14px;border-top:1px solid var(--border);color:var(--text-3);font-size:12px}.fx-tray-clear{margin-left:auto;padding:6px 8px;font-size:12.5px}@keyframes fx-tray-in{0%{opacity:0;transform:translateY(14px) scale(.98)}}@keyframes fx-tray-row-in{0%{opacity:0;transform:translateY(4px)}}@keyframes fx-tray-sheet-in{0%{transform:translateY(100%)}}@keyframes fx-tray-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-1.5px)}}@media(max-width:1080px){.fx-list{--cols: 40px minmax(0, 1fr) 96px 132px 44px}}@media(max-width:900px){:root{--sidebar-w: 0px}.fx-shell{grid-template-columns:minmax(0,1fr)}.fx-sidebar{position:fixed;z-index:70;top:0;bottom:0;left:0;width:min(300px,86vw);padding-top:calc(14px + var(--safe-t));box-shadow:var(--shadow-lg);transform:translate(-104%);transition:transform .26s var(--ease);visibility:hidden}.fx-sidebar.is-open{transform:none;visibility:visible}.fx-only-compact,.fx-tb-menu,.fx-fab{display:inline-flex}.fx-selecting .fx-fab{opacity:0;transform:scale(.8);pointer-events:none}.fx-tb-upload{display:none}.fx-content{padding-bottom:calc(96px + var(--safe-b))}.fx-selbar{max-width:calc(100vw - 24px)}.fx-tray,.fx-selecting .fx-tray{right:16px;bottom:calc(88px + var(--safe-b))}}@media(max-width:640px){:root{--row-h: 60px;--topbar-h: 0px}.fx-topbar{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"menu search tools" "loc loc loc";gap:6px 4px;padding:calc(8px + var(--safe-t)) 10px 4px 6px;border-bottom:0}.fx-tb-location{padding:0 0 2px;min-height:40px}.fx-crumb{max-width:160px;font-size:14px;padding:0 6px}.fx-crumb.is-current{font-size:20px;font-weight:700}.fx-search{height:42px;border-radius:12px;background:var(--surface-2);border-color:transparent}.fx-search-kbd{display:none}.fx-sort{width:38px;height:38px;padding:0;justify-content:center}.fx-sort .fx-svg{width:20px;height:20px}.fx-sort select{position:absolute;inset:0;opacity:0;width:100%}.fx-tb-tools{gap:0}.fx-segmented{padding:0;background:none}.fx-seg-btn{width:38px;height:38px;color:var(--text-2)}.fx-seg-btn.is-active{display:none}.fx-seg-btn.is-active,.fx-seg-btn:hover{background:none;box-shadow:none}.fx-seg-btn .fx-svg{width:20px;height:20px}.fx-content{padding:0 10px calc(104px + var(--safe-b))}.fx-list{--cols: 0px minmax(0, 1fr) 0px 0px 40px}.fx-selecting .fx-list{--cols: 36px minmax(0, 1fr) 0px 0px 40px}.fx-list-head,.fx-cell-size,.fx-cell-date{display:none}.fx-cell-check{overflow:hidden}.fx-row{margin:0 -4px;padding:0 4px;border-radius:12px}.fx-row:hover{background:transparent}.fx-row:active{background:var(--surface-2)}.fx-row.selected,.fx-row.selected:hover{background:var(--accent-soft-2)}.fx-ficon{width:40px;height:40px;border-radius:11px}.fx-ficon .fx-svg{width:20px;height:20px}.fx-name{font-size:15px}.fx-sub,.fx-sub.is-path{display:block}.fx-more{opacity:1;color:var(--text-3)}.fx-check{width:20px;height:20px;border-radius:50%}.fx-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;padding-top:6px}.fx-tile-body{padding:8px 10px 10px}.fx-tile-name{font-size:12.5px;min-height:33.75px}.fx-tile .fx-more{opacity:1;width:28px;height:28px;top:4px;right:4px}.fx-ficon--lg{width:48px;height:48px;border-radius:14px}.fx-ficon--lg .fx-svg{width:24px;height:24px}.fx-pager{justify-content:center}.fx-selbar{left:0;right:0;bottom:0;transform:none;max-width:none;flex-direction:column;align-items:stretch;gap:2px;padding:6px 8px calc(6px + var(--safe-b));border-radius:18px 18px 0 0;background:var(--surface);color:var(--text);border-top:1px solid var(--border);box-shadow:0 -8px 30px -12px #00000040;animation-name:fx-dock}.fx-selbar .fx-icon-btn{color:var(--text-2);opacity:1}.fx-selbar .fx-icon-btn:hover{background:var(--surface-2)}.fx-selbar-info{border-right:0;padding:0 4px 0 0}.fx-selbar-count{flex:1;font-size:15px}.fx-selbar-all{display:inline-flex;font-size:14px;padding:6px 8px}.fx-selbar-actions{justify-content:space-around;gap:0}.fx-sel-action{flex:1 1 0;flex-direction:column;justify-content:center;gap:4px;height:56px;min-width:0;padding:0 2px;font-size:11px;color:var(--text-2);border-radius:12px}.fx-sel-action span{max-width:100%;overflow:hidden;text-overflow:ellipsis}.fx-sel-action .fx-svg{width:22px;height:22px;color:var(--text)}.fx-sel-action.is-danger,.fx-sel-action.is-danger .fx-svg{color:var(--danger)}.fx-sel-action:hover:not(:disabled){background:var(--surface-2)}.fx-toast{bottom:calc(96px + var(--safe-b) + var(--action-toast-offset, 0px))}.fx-selecting .fx-toast{bottom:calc(132px + var(--safe-b) + var(--action-toast-offset, 0px))}.fx-atoast{left:12px;right:12px;bottom:calc(86px + var(--safe-b));max-width:none;min-height:52px;transform:translateY(12px) scale(.98);padding-left:16px}.fx-atoast.is-visible{transform:none}.fx-selecting .fx-atoast{bottom:calc(124px + var(--safe-b))}.fx-atoast-action{height:40px;padding:0 14px;font-size:14.5px}.fx-atoast-close{width:40px;height:40px}.fx-tray[data-layout=sheet]{z-index:35;left:16px;right:86px;bottom:calc(18px + var(--safe-b));width:auto}.fx-selecting .fx-tray[data-layout=sheet]{right:16px;bottom:calc(126px + var(--safe-b))}.fx-tray[data-layout=sheet][data-state=collapsed] .fx-tray-panel{border-radius:18px;box-shadow:0 10px 28px -10px #10182847,var(--shadow-md)}.fx-tray[data-layout=sheet][data-state=collapsed] .fx-tray-head{min-height:56px;padding:6px 6px 6px 4px}.fx-tray[data-layout=sheet][data-state=collapsed] .fx-tray-body,.fx-tray[data-layout=sheet][data-state=collapsed] .fx-tray-toggle{display:none}.fx-tray[data-layout=sheet][data-state=collapsed] .fx-tray-meter{margin:0}.fx-tray[data-layout=sheet][data-state=expanded]{z-index:1400;left:0;right:0;bottom:0}.fx-tray[data-layout=sheet][data-state=expanded] .fx-tray-scrim{display:block;position:fixed;inset:0;z-index:-1;background:var(--scrim);animation:fx-fade .2s ease both}.fx-tray[data-layout=sheet][data-state=expanded] .fx-tray-panel{border-width:1px 0 0;border-radius:22px 22px 0 0;padding-bottom:var(--safe-b);box-shadow:0 -12px 40px -16px #0000004d;animation:fx-tray-sheet-in .3s var(--ease) both}.fx-tray[data-layout=sheet][data-state=expanded] .fx-tray-grip{display:block;width:36px;height:4px;margin:8px auto 0;border-radius:999px;background:var(--border-strong)}.fx-tray[data-layout=sheet][data-state=expanded] .fx-tray-head{padding:6px 10px 8px 8px}.fx-tray[data-layout=sheet] .fx-tray-list{max-height:58vh;padding:4px 8px}.fx-tray[data-layout=sheet] .fx-tray-row{padding:10px 6px 10px 8px}.fx-tray[data-layout=sheet] .fx-tray-act{width:36px;height:36px}.fx-tray[data-layout=sheet] .fx-tray-foot{min-height:46px;padding:4px 10px 6px 16px}.fx-tray-visible .fx-toast{bottom:calc(90px + var(--safe-b))}.fx-tray-visible.fx-selecting .fx-toast{bottom:calc(194px + var(--safe-b))}.fx-menu-layer.is-sheet .fx-menu{left:0;right:0;bottom:0;width:100%;transform:translateY(24px);border-radius:22px 22px 0 0;border-bottom:0;padding:6px 8px calc(10px + var(--safe-b))}.fx-menu-layer.is-sheet.is-open .fx-menu{transform:none}.fx-menu-layer.is-sheet.is-closing .fx-menu{transform:translateY(110%)}.fx-menu-layer.is-sheet .fx-sheet-grip{display:block;width:36px;height:4px;margin:2px auto 8px;border-radius:999px;background:var(--border-strong)}.fx-dialog{padding:18px}.fx-dialog-actions .fx-btn{flex:1;height:42px}.preview-stage{padding:0 0 calc(12px + var(--safe-b))}.preview-media img,.preview-media video{border-radius:0}.preview-nav{display:none!important}.preview-header{padding-left:16px}.auth-card{padding:22px;border-radius:18px}}@keyframes fx-dock{0%{transform:translateY(100%)}}@media(hover:none){.fx-row:hover .fx-check{opacity:0}.fx-selecting .fx-row .fx-check,.fx-row .fx-check[aria-checked=true],.fx-more{opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}.fx-dialog-titles p{white-space:pre-line}@media(max-width:640px){.fx-tile-art{aspect-ratio:1 / .92}.fx-tile-art .fx-badge{left:6px;bottom:6px;height:18px;padding:0 6px;font-size:10px}}@media(min-width:641px){body.fx-tray-visible:has(#fileBrowser:not([hidden])) .fx-toast,body.fx-tray-visible:has(#fileBrowser:not([hidden])) .fx-atoast{left:calc(var(--sidebar-w) + (100vw - var(--sidebar-w) - 400px) / 2)}}.fx-tb-history.is-active,.fx-tb-history.is-active:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-text)}.fx-hbadges-secondary{display:contents}.fx-hsub .fx-hbadges-secondary{display:none}.fx-history-banner{display:flex;align-items:center;gap:8px;margin:10px 20px 0;padding:8px 14px;border:1px solid color-mix(in srgb,var(--accent) 24%,transparent);border-radius:var(--radius);background:var(--accent-soft);color:var(--text);font-size:13.5px;animation:fx-fade .18s ease both}.fx-history-banner[hidden]{display:none}.fx-history-banner-icon{display:inline-flex;flex:none;color:var(--accent-text)}.fx-history-banner-icon .fx-svg{width:17px;height:17px}.fx-history-banner-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-history-banner-sep{color:var(--text-3)}.fx-history-banner-back{flex:none;font-weight:600}.fx-history{flex:none;position:relative;z-index:5;padding:12px 20px 14px;border-top:1px solid var(--border);background:var(--surface);box-shadow:0 -10px 28px -22px #10182873;animation:fx-dock .24s var(--ease) both}.fx-history[hidden]{display:none}.fx-history-head{display:flex;align-items:center;gap:10px}.fx-history-badge{display:inline-flex;flex:none;align-items:center;justify-content:center;width:32px;height:32px;border-radius:9px;background:var(--accent-soft);color:var(--accent-text)}.fx-history-badge .fx-svg{width:18px;height:18px}.fx-history-titles{flex:1;min-width:0}.fx-history-title{overflow:hidden;font-size:14px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.fx-history-sub{overflow:hidden;color:var(--text-3);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.fx-history-legend{display:flex;gap:12px;color:var(--text-2);font-size:12px;font-weight:500;white-space:nowrap}.fx-history-legend .is-added,.fx-hchip.is-added .fx-hchip-sym{color:var(--success)}.fx-history-legend .is-removed,.fx-hchip.is-removed .fx-hchip-sym{color:var(--danger)}.fx-history-legend .is-changed,.fx-hchip.is-changed .fx-hchip-sym{color:var(--text-3)}.fx-hchip.is-created .fx-hchip-sym{color:var(--accent-text)}.fx-history-about{margin-top:10px;padding:10px 14px;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-2);font-size:12.5px;line-height:1.5}.fx-history-about[hidden]{display:none}.fx-history-about p{margin:0 0 4px}.fx-history-about ul{margin:0;padding-left:18px}.fx-history-scrub{display:flex;align-items:center;gap:4px;margin-top:8px}.fx-history-skel{flex:1;height:6px;margin:14px 44px;border-radius:999px}.fx-history-step{width:32px;height:32px}.fx-history-track{position:relative;flex:1;height:34px;margin:0 10px;border-radius:999px;cursor:pointer;outline:none;touch-action:none;user-select:none;-webkit-user-select:none}.fx-history-rail,.fx-history-fill{position:absolute;top:50%;left:0;height:4px;margin-top:-2px;border-radius:999px}.fx-history-rail{right:0;background:var(--surface-3)}.fx-history-fill{width:0;background:color-mix(in srgb,var(--accent) 55%,var(--surface-3));transition:width .14s var(--ease)}.fx-history-tick{position:absolute;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border:2px solid var(--text-3);border-radius:50%;background:var(--surface);transition:transform .14s var(--ease)}.fx-history-tick.is-added{border-color:var(--success)}.fx-history-tick.is-removed{border-color:var(--danger)}.fx-history-tick.is-mixed{border-color:var(--warning)}.fx-history-tick.is-created,.fx-history-tick.is-now{border-color:var(--accent)}.fx-history-tick.is-past.is-added{background:var(--success)}.fx-history-tick.is-past.is-removed{background:var(--danger)}.fx-history-tick.is-past.is-mixed{background:var(--warning)}.fx-history-tick.is-past.is-changed{background:var(--text-3)}.fx-history-tick.is-past.is-created{background:var(--accent)}.fx-history-tick.is-active{transform:scale(1.3)}.fx-history-thumb{position:absolute;top:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:3px solid var(--surface);border-radius:50%;background:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 40%,transparent),var(--shadow-md);pointer-events:none;transition:left .14s var(--ease)}.fx-history-track.is-dragging .fx-history-thumb,.fx-history-track.is-dragging .fx-history-fill{transition:none}.fx-history-track:focus-visible .fx-history-thumb{box-shadow:0 0 0 4px var(--accent-ring),var(--shadow-md)}.fx-history-axis{display:flex;justify-content:space-between;margin:-4px 46px 0;color:var(--text-3);font-size:11.5px;font-variant-numeric:tabular-nums}.fx-history-detail{display:flex;align-items:center;gap:12px;min-height:32px;margin-top:8px}.fx-history-when{display:flex;flex:none;align-items:center;gap:10px}.fx-history-when-label{font-size:13.5px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.fx-btn.fx-history-now{height:30px;padding:0 10px;font-size:12.5px}.fx-history-now .fx-svg{width:15px;height:15px}.fx-history-changes{display:flex;flex:1;gap:6px;min-width:0;overflow-x:auto;scrollbar-width:none}.fx-history-changes::-webkit-scrollbar{display:none}.fx-history-hint{color:var(--text-3);font-size:12.5px}.fx-hchip{display:inline-flex;flex:none;align-items:center;gap:6px;height:28px;max-width:320px;padding:0 11px 0 9px;border:1px solid var(--border);border-radius:999px;background:var(--surface-2);color:var(--text);font-size:12.5px;white-space:nowrap}.fx-hchip:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-3)}.fx-hchip:disabled{cursor:default}.fx-hchip-sym{width:10px;font-weight:700;text-align:center}.fx-hchip-name{min-width:0;overflow:hidden;font-weight:500;text-overflow:ellipsis}.fx-hchip-detail{flex:none;color:var(--text-3)}.fx-history-active .fx-fab{display:none}.fx-history-active .fx-tb-upload{opacity:.45}.fx-history-active .fx-list-head .fx-check{visibility:hidden}.fx-history-active .fx-content{padding-bottom:20px}.fx-history-active .fx-toast{bottom:calc(190px + var(--safe-b))}.fx-hmark{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:6px;font-size:14px;font-weight:700;line-height:1}.fx-hmark.is-added{background:color-mix(in srgb,var(--success) 15%,transparent);color:var(--success)}.fx-hmark.is-removed{background:var(--danger-soft);color:var(--danger)}.fx-hmark.is-changed{background:var(--surface-3);color:var(--text-2)}.fx-tile-art .fx-hmark{position:absolute;top:8px;left:8px}.fx-hrow.is-diff-added:not(.selected){background:color-mix(in srgb,var(--success) 6%,transparent)}.fx-hrow.is-ghost:not(.selected){background:color-mix(in srgb,var(--danger) 5%,transparent)}.fx-hrow.is-ghost .fx-name,.fx-hrow.is-ghost .fx-tile-name{color:var(--text-3);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--danger) 60%,transparent)}.fx-hrow.is-ghost .fx-ficon,.fx-hrow.is-uncertain .fx-ficon{opacity:.5}.fx-hrow.is-uncertain .fx-name,.fx-hrow.is-uncertain .fx-tile-name{color:var(--text-2)}.fx-hrow.is-flash{animation:fx-history-flash 1s var(--ease)}@keyframes fx-history-flash{0%,40%{box-shadow:inset 0 0 0 2px var(--accent)}to{box-shadow:inset 0 0 0 2px transparent}}.fx-tile-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.fx-tile-badges:empty{display:none}.fx-badge--deleted{background:var(--danger-soft);color:var(--danger)}.fx-badge--moved{background:var(--warning-soft);color:var(--warning)}.fx-badge--maybe{border:1px dashed var(--border-strong);background:transparent;color:var(--text-2)}.fx-badge--gone{background:var(--surface-3);color:var(--text-2)}.fx-badge--renamed{background:var(--accent-soft);color:var(--accent-text)}@media(max-width:900px){.fx-history-legend{display:none}}@media(max-width:640px){.fx-tb-history{width:38px;height:38px}.fx-name-line .fx-hbadges-secondary{display:none}.fx-hrow .fx-sub.fx-hsub{display:flex;align-items:center;gap:6px}.fx-hsub .fx-hbadges-secondary{display:inline-flex;flex:none;gap:4px}.fx-hsub .fx-badge{height:18px;padding:0 6px;font-size:10.5px}.fx-hsub-text{min-width:0;overflow:hidden;text-overflow:ellipsis}.fx-history-banner-text{white-space:normal;line-height:1.35}.fx-history-banner-sep,.fx-hsub .fx-hbadges-secondary:empty{display:none}.fx-history-banner{margin:2px 10px 4px;padding:8px 12px;font-size:13px}.fx-history{padding:10px 12px calc(10px + var(--safe-b));border-radius:18px 18px 0 0;box-shadow:0 -12px 30px -16px #10182859}.fx-history-scrub{margin-top:4px}.fx-history-track{height:40px;margin:0 6px}.fx-history-axis{margin:-6px 40px 0}.fx-history-detail{flex-direction:column;align-items:stretch;gap:6px}.fx-history-when{justify-content:space-between;min-height:30px}.fx-history-changes{flex:none}.fx-hchip{max-width:78vw}.fx-history-active .fx-content{padding-bottom:16px}.fx-history-active .fx-toast{bottom:calc(210px + var(--safe-b))}}.fx-kbd{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:6px;border:1px solid var(--border-strong);border-bottom-width:2px;background:var(--surface);color:var(--text-2);font:600 11.5px/1 var(--font);white-space:nowrap}.fx-tb-palette{display:none}@media(max-width:900px){.fx-tb-palette{display:inline-flex}}.fx-scopebar{display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 20px;border-bottom:1px solid var(--border);background:var(--bg);animation:fx-fade .16s ease both}.fx-scopebar-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-3);font-size:13px}.fx-scopebar-label strong{color:var(--text);font-weight:600}.fx-scope{display:inline-flex;flex:none;padding:3px;gap:2px;border-radius:999px;background:var(--surface-2)}.fx-scope-btn{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px 0 10px;border:0;border-radius:999px;background:transparent;color:var(--text-2);font-size:12.5px;font-weight:600;transition:background-color .12s ease,color .12s ease,box-shadow .12s ease}.fx-scope-btn .fx-svg{width:14px;height:14px}.fx-scope-btn:hover{color:var(--text)}.fx-scope-btn.is-active{background:var(--surface);color:var(--accent-text);box-shadow:var(--shadow-sm)}.fx-scope-btn:focus-visible{outline:2px solid var(--accent-ring);outline-offset:1px}.fx-sub.is-location{display:flex;align-items:center;min-width:0}.fx-loc{display:inline-flex;align-items:center;gap:5px;min-width:0;color:var(--text-3)}.fx-loc .fx-svg{flex:none;width:12px;height:12px}.fx-loc-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-loc.is-pending .fx-skel-line{width:96px;height:8px}.fx-loc-meta{display:none;flex:none;white-space:nowrap}.fx-loc-meta:before{content:"·";margin:0 5px}.fx-tile-meta.is-location{display:flex;min-width:0}.fx-palette-layer{position:fixed;inset:0;z-index:1800;display:flex;justify-content:center;align-items:flex-start;padding:min(14vh,120px) 16px 16px;background:var(--scrim);opacity:0;transition:opacity .14s ease}.fx-palette-layer.is-open{opacity:1}.fx-palette{display:flex;flex-direction:column;width:min(640px,100%);max-height:min(560px,calc(100dvh - (2*min(14vh,120px))));border-radius:var(--radius-xl);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-lg),0 0 0 1px color-mix(in srgb,var(--text) 4%,transparent);overflow:hidden;transform:translateY(-6px) scale(.985);transition:transform .18s var(--ease)}.fx-palette-layer.is-open .fx-palette{transform:none}.fx-palette-layer.is-closing .fx-palette{transform:scale(.985)}.fx-pal-head{display:flex;align-items:center;gap:10px;padding:0 14px 0 16px;height:56px;flex:none;border-bottom:1px solid var(--border)}.fx-pal-search-icon,.fx-pal-back{display:inline-flex;flex:none;color:var(--text-3)}.fx-pal-search-icon .fx-svg{width:20px;height:20px}.fx-pal-back{display:none;align-items:center;justify-content:center;width:28px;height:28px;margin-left:-4px;padding:0;border:0;border-radius:8px;background:var(--surface-2);color:var(--text-2)}.fx-pal-back .fx-svg{width:18px;height:18px}.fx-palette-layer.is-submode .fx-pal-search-icon{display:none}.fx-palette-layer.is-submode .fx-pal-back{display:inline-flex}.fx-pal-input{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:16.5px;letter-spacing:-.005em}.fx-pal-input::placeholder{color:var(--text-3)}.fx-pal-esc{flex:none;padding:2px 6px;border-radius:6px;border:1px solid var(--border-strong);color:var(--text-3);font:600 10.5px/1.3 var(--font);text-transform:uppercase;letter-spacing:.04em}.fx-pal-cancel{display:none;flex:none;padding:6px 2px 6px 8px;border:0;background:none;color:var(--accent-text);font-size:15px;font-weight:500}.fx-pal-list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:6px 8px 8px;scroll-padding:34px 0 8px}.fx-pal-group+.fx-pal-group{margin-top:4px}.fx-pal-group-title{padding:10px 10px 5px;color:var(--text-3);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-pal-group-detail{margin-left:8px;color:var(--text-2);font-weight:500;letter-spacing:0;text-transform:none}.fx-pal-divider{height:1px;margin:6px;background:var(--border)}.fx-pal-item{display:flex;align-items:center;gap:12px;min-height:44px;padding:6px 10px;border-radius:10px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.fx-pal-item.is-active{background:var(--accent-soft)}.fx-pal-item.is-disabled{opacity:.45;cursor:default}.fx-pal-item .fx-ficon{width:30px;height:30px;border-radius:8px}.fx-pal-item .fx-ficon .fx-svg{width:16px;height:16px}.fx-pal-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:30px;height:30px;border-radius:8px;background:var(--surface-2);color:var(--text-2)}.fx-pal-icon .fx-svg{width:16px;height:16px}.fx-pal-item.is-active .fx-pal-icon{background:var(--surface);color:var(--accent-text);box-shadow:var(--shadow-sm)}.fx-pal-icon.is-danger,.fx-pal-item.is-active .fx-pal-icon.is-danger,.fx-pal-item.is-danger .fx-pal-label{color:var(--danger)}.fx-pal-text{display:flex;flex-direction:column;flex:1;min-width:0}.fx-pal-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500}.fx-pal-label mark{background:none;color:var(--accent-text);font-weight:650}.fx-pal-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-3);font-size:12px}.fx-pal-sub.is-pending .fx-skel-line{width:120px;height:8px;margin:4px 0 2px}.fx-pal-trail{display:inline-flex;align-items:center;gap:8px;flex:none}.fx-pal-hint{min-width:20px;padding:1px 6px;border-radius:5px;border:1px solid var(--border-strong);color:var(--text-3);font:500 11px/1.4 var(--font);text-align:center}.fx-pal-meta{color:var(--text-3);font-size:12px}.fx-pal-check{display:inline-flex;color:var(--accent)}.fx-pal-check .fx-svg{width:16px;height:16px}.fx-pal-enter{display:none;color:var(--accent-text)}.fx-pal-enter .fx-svg{width:15px;height:15px}.fx-pal-item.is-active .fx-pal-enter{display:inline-flex}.fx-pal-loading,.fx-pal-note{display:flex;align-items:center;gap:10px;padding:8px 12px;color:var(--text-3);font-size:12.5px}.fx-pal-note .fx-svg{width:14px;height:14px;color:var(--warning)}.fx-pal-empty{padding:28px 16px;text-align:center;color:var(--text-3)}.fx-pal-foot{display:flex;align-items:center;gap:14px;flex:none;padding:8px 16px;border-top:1px solid var(--border);background:var(--bg);color:var(--text-3);font-size:11.5px}.fx-pal-foot kbd{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-right:3px;padding:0 4px;border-radius:4px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-2);font:600 10.5px/1 var(--font)}.fx-pal-foot-spacer{flex:1}.fx-dialog.fx-shortcuts{width:min(760px,100%);max-height:min(680px,calc(100dvh - 32px));padding:0;gap:0;overflow:hidden}.fx-shortcuts-head{display:flex;align-items:center;gap:14px;padding:18px 18px 16px 20px;border-bottom:1px solid var(--border)}.fx-shortcuts-head .fx-dialog-titles{flex:1}.fx-shortcuts-head .fx-kbd{height:18px;min-width:18px;padding:0 5px;font-size:11px;vertical-align:1px}.fx-shortcuts-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 28px;padding:12px 20px 22px;overflow-y:auto}.fx-shortcuts-group h3{margin:12px 0 6px;color:var(--text-3);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.fx-shortcuts-group dl{margin:0}.fx-shortcuts-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:34px;border-bottom:1px dashed var(--border)}.fx-shortcuts-row:last-child{border-bottom:0}.fx-shortcuts-row dt{min-width:0;color:var(--text);font-size:13.5px}.fx-shortcuts-row dd{display:inline-flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:6px;margin:0}.fx-keys-chord{display:inline-flex;gap:3px}.fx-keys-or{color:var(--text-3);font-size:11.5px}.fx-storage{position:relative}.fx-storage-card{display:flex;flex-direction:column;gap:8px;width:100%;padding:11px 12px 10px;border:1px solid var(--border);border-radius:12px;background:var(--surface);text-align:left;transition:border-color .12s ease,box-shadow .12s ease}.fx-storage-card:hover,.fx-storage.is-open .fx-storage-card{border-color:var(--border-strong)}.fx-storage-card:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-ring)}.fx-storage-head{display:flex;align-items:center;gap:8px;min-width:0}.fx-storage-icon{display:inline-flex;flex:none;color:var(--accent-text)}.fx-storage-icon .fx-svg{width:15px;height:15px}.fx-storage-size{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:650;letter-spacing:-.005em;color:var(--text)}.fx-storage-size .fx-skel-line{width:92px;height:10px}.fx-storage-count{flex:none;color:var(--text-3);font-size:11.5px;font-variant-numeric:tabular-nums}.fx-storage-bar{display:flex;gap:2px;height:6px;border-radius:999px;overflow:hidden;background:var(--surface-3)}.fx-storage-seg{flex:1 1 0;min-width:3px;background:var(--tint, #6b7686);transition:flex-grow .4s var(--ease)}.fx-storage-shimmer{flex:1;height:100%;border-radius:0}.fx-storage-help{color:var(--text-3);font-size:11.5px}.fx-storage-legend{position:absolute;left:0;right:0;bottom:calc(100% + 6px);z-index:5;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-md);opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .14s ease,transform .16s var(--ease),visibility 0s linear .16s;pointer-events:none}.fx-storage.is-open .fx-storage-legend{opacity:1;visibility:visible;transform:none;transition:opacity .14s ease,transform .16s var(--ease)}@media(hover:hover){.fx-storage:hover .fx-storage-legend{opacity:1;visibility:visible;transform:none;transition:opacity .14s ease .12s,transform .16s var(--ease) .12s}}.fx-storage-legend-row{display:flex;align-items:center;gap:8px;height:24px;font-size:12px}.fx-storage-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--tint, #6b7686)}.fx-storage-legend-label{flex:1;color:var(--text)}.fx-storage-legend-size{color:var(--text-2);font-variant-numeric:tabular-nums}.fx-storage-legend-share{min-width:34px;color:var(--text-3);text-align:right;font-variant-numeric:tabular-nums}.fx-storage-legend-note{padding:2px 0;color:var(--text-3);font-size:11.5px}.fx-storage-legend-row+.fx-storage-legend-note{margin-top:4px;padding-top:6px;border-top:1px solid var(--border)}@media(max-width:640px){.fx-tb-palette{display:inline-flex;width:38px;height:38px}.fx-tb-palette .fx-svg{width:20px;height:20px}.fx-scopebar{padding:4px 10px 8px 12px;min-height:40px;border-bottom:0}.fx-scope-btn{height:30px}.fx-sub.is-location .fx-loc-meta{display:inline}.fx-palette-layer{padding:0}.fx-palette{width:100%;max-height:88dvh;border-radius:0 0 22px 22px;border-top:0;padding-top:var(--safe-t);transform:translateY(-24px);transition:transform .22s var(--ease)}.fx-palette-layer.is-closing .fx-palette{transform:translateY(-100%)}.fx-pal-head{height:58px;padding:0 12px 0 16px}.fx-pal-input{font-size:17px}.fx-pal-esc,.fx-pal-foot,.fx-pal-hint,.fx-pal-enter,.fx-pal-item.is-active .fx-pal-enter{display:none}.fx-pal-cancel{display:inline-flex}.fx-pal-list{padding:4px 8px calc(10px + var(--safe-b))}.fx-pal-item{min-height:52px}.fx-pal-item .fx-ficon,.fx-pal-icon{width:34px;height:34px;border-radius:10px}.fx-pal-label{font-size:15px}.fx-shortcuts-body{grid-template-columns:minmax(0,1fr)}}@media(hover:none){.fx-pal-item:active{background:var(--surface-2)}}.fx-sidebar>*{flex-shrink:0}[data-color=blue]{--tag: var(--tag-blue)}[data-color=green]{--tag: var(--tag-green)}[data-color=amber]{--tag: var(--tag-amber)}[data-color=purple]{--tag: var(--tag-purple)}[data-color=pink]{--tag: var(--tag-pink)}[data-color=teal]{--tag: var(--tag-teal)}[data-color=orange]{--tag: var(--tag-orange)}[data-color=red]{--tag: var(--tag-red)}[data-color=gray]{--tag: var(--tag-gray)}.fx-tag-dot{display:inline-block;flex:none;width:8px;height:8px;border-radius:50%;background:var(--tag, var(--tag-gray))}.fx-star{display:inline-flex;flex:none;color:var(--star)}.fx-star .fx-svg{width:15px;height:15px;fill:currentColor;stroke-width:1.6}.fx-star.is-popping{animation:fx-star-pop .42s var(--ease) both}@keyframes fx-star-pop{0%{transform:scale(.3) rotate(-30deg);opacity:0}55%{transform:scale(1.3) rotate(8deg);opacity:1}to{transform:none}}.fx-label-slot:empty{display:none}.fx-label-slot--inline{display:inline-flex;align-items:center;gap:8px;flex:none;max-width:55%;overflow:hidden}.fx-label-slot--sub{display:none}.fx-chips{display:inline-flex;align-items:center;gap:4px;min-width:0;overflow:hidden}.fx-chip{display:inline-flex;align-items:center;gap:5px;flex:0 1 auto;min-width:0;max-width:128px;height:20px;padding:0 8px 0 6px;border-radius:999px;background:color-mix(in srgb,var(--tag, var(--tag-gray)) 13%,transparent);color:var(--text-2);font-size:11.5px;font-weight:500;line-height:1;white-space:nowrap}.fx-chip-name{min-width:0;overflow:hidden;text-overflow:ellipsis}.fx-chip--more{flex:none;padding:0 7px;background:var(--surface-2);color:var(--text-3);font-variant-numeric:tabular-nums}.fx-row.selected .fx-chip--more{background:var(--surface)}.fx-sub.is-path{display:flex}.fx-sub{align-items:center;gap:6px}.fx-sub-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-tile-meta-text{min-width:0;overflow:hidden;text-overflow:ellipsis}.fx-label-slot--tile-star:not(:empty){position:absolute;right:8px;bottom:8px;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:color-mix(in srgb,var(--surface) 90%,transparent);box-shadow:var(--shadow-sm)}.fx-label-slot--tile-tags:not(:empty){display:flex;margin-top:7px;min-width:0}.fx-nav-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.fx-nav-count{flex:none;margin-left:auto;color:var(--text-3);font-size:12px;font-weight:500;font-variant-numeric:tabular-nums}.fx-nav-item.is-active .fx-nav-count{color:var(--accent-text)}.fx-nav-starred.is-active .fx-svg{color:var(--star);fill:var(--star)}.fx-tag-nav .fx-tag-dot{width:10px;height:10px;margin:0 4px;box-shadow:0 0 0 3px color-mix(in srgb,var(--tag) 16%,transparent)}.fx-nav-more{color:var(--text-3);font-size:12.5px}.fx-nav-empty{margin:0 10px 4px;color:var(--text-3);font-size:12px;line-height:1.45}.fx-crumb--view{gap:8px;max-width:100%}.fx-crumb-star{display:inline-flex;color:var(--star)}.fx-crumb-star .fx-svg{width:19px;height:19px;fill:currentColor}.fx-crumb-hash{color:var(--tag);font-weight:700}.fx-empty-art--star{background:color-mix(in srgb,var(--star) 15%,transparent);color:var(--star)}.fx-empty-art--star .fx-svg{fill:currentColor}.fx-empty p kbd{padding:1px 6px;border-radius:5px;border:1px solid var(--border-strong);font-size:12px;font-family:var(--font)}.fx-tag-dialog,.fx-tagman-dialog{width:min(460px,100%)}.fx-labels-backdrop.is-closing{opacity:0}.fx-dialog-grip{display:none}.fx-labels-backdrop.is-sheet{align-items:flex-end;padding:0}.fx-labels-backdrop.is-sheet .fx-dialog{width:100%;max-width:none;max-height:calc(100dvh - 24px);padding:8px 16px calc(14px + var(--safe-b));border-radius:22px 22px 0 0;border-bottom:0;transform:translateY(48px);transition:transform .26s var(--ease)}.fx-labels-backdrop.is-sheet.is-open .fx-dialog{transform:none}.fx-labels-backdrop.is-sheet.is-closing .fx-dialog{transform:translateY(100%)}.fx-labels-backdrop.is-sheet .fx-dialog-grip{display:block;width:36px;height:4px;margin:0 auto -6px;border-radius:999px;background:var(--border-strong)}.fx-tagbox{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:46px;padding:7px 8px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);cursor:text;transition:border-color .12s ease,box-shadow .12s ease}.fx-tagbox:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.fx-tagbox-chips{display:contents}.fx-tagbox-input{flex:1;min-width:120px;height:30px;padding:0 4px;border:0;outline:0;background:transparent;color:var(--text);font-size:14px}.fx-tagbox-input::placeholder{color:var(--text-3)}.fx-chip--edit{max-width:100%;height:30px;gap:6px;padding:0 4px 0 10px;color:var(--text);font-size:13px;cursor:default;animation:fx-chip-in .18s var(--ease) both}.fx-chip--edit .fx-tag-dot{width:9px;height:9px}.fx-chip--edit.is-mixed{background:transparent;box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--tag) 45%,transparent);color:var(--text-2);cursor:pointer}.fx-chip-mixed{color:var(--text-3);font-weight:700}.fx-chip-x{display:inline-flex;align-items:center;justify-content:center;flex:none;width:22px;height:22px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--text-3)}.fx-chip-x:hover{background:color-mix(in srgb,var(--tag) 20%,transparent);color:var(--text)}.fx-chip-x .fx-svg{width:13px;height:13px;stroke-width:2.4}@keyframes fx-chip-in{0%{transform:scale(.85);opacity:0}}.fx-tag-suggest{display:flex;flex-direction:column;gap:1px;max-height:min(264px,38dvh);margin:-6px -6px 0;padding:2px 6px;overflow-y:auto}.fx-tag-option{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:0 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:14px;text-align:left}.fx-tag-option:hover,.fx-tag-option.is-active{background:var(--surface-2)}.fx-tag-option-lead{display:inline-flex;align-items:center;justify-content:center;width:18px;color:var(--accent-text)}.fx-tag-option-lead .fx-tag-dot{width:10px;height:10px}.fx-tag-option-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-tag-option.is-create .fx-tag-option-name{color:var(--accent-text);font-weight:500}.fx-tag-option-meta{color:var(--text-3);font-size:12px;font-variant-numeric:tabular-nums}.fx-tag-option .fx-check{opacity:1;flex:none}.fx-tag-suggest-empty{padding:14px 10px;color:var(--text-3);font-size:13px;text-align:center}.fx-tag-actions{align-items:center}.fx-tag-actions-spacer{flex:1}.fx-tag-manage{display:inline-flex;align-items:center;gap:6px;font-size:13px}.fx-tag-manage .fx-svg{width:15px;height:15px}.fx-tagnew{display:flex;gap:8px}.fx-tagnew .fx-input{flex:1;min-width:0}.fx-tagnew .fx-btn .fx-svg{width:16px;height:16px}.fx-tagman{display:flex;flex-direction:column;max-height:min(340px,44dvh);margin:-4px -8px;padding:0 8px;overflow-y:auto}.fx-tagman-row+.fx-tagman-row{border-top:1px solid var(--border)}.fx-tagman-main{display:flex;align-items:center;gap:8px;min-height:50px}.fx-tagman-swatch{display:inline-flex;align-items:center;justify-content:center;flex:none;width:34px;height:34px;padding:0;border:0;border-radius:50%;background:color-mix(in srgb,var(--tag) 14%,transparent);transition:transform .12s var(--ease),background-color .12s ease}.fx-tagman-swatch:hover:not(:disabled){background:color-mix(in srgb,var(--tag) 24%,transparent);transform:scale(1.06)}.fx-tagman-swatch .fx-tag-dot{width:13px;height:13px}.fx-tagman-text{display:flex;align-items:baseline;gap:8px;flex:1;min-width:0}.fx-tagman-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.fx-tagman-count{flex:none;color:var(--text-3);font-size:12px}.fx-tagman-delete:hover:not(:disabled){color:var(--danger);background:var(--danger-soft)}.fx-tagman-rename{display:flex;align-items:center;gap:4px;flex:1;min-width:0}.fx-tagman-rename .fx-input{height:36px}.fx-tagman-row.is-rename .fx-tagman-text{flex-direction:column;align-items:stretch;gap:2px;padding:6px 0}.fx-tagman-error{color:var(--danger);font-size:12px}.fx-swatches{display:flex;flex-wrap:wrap;gap:8px;padding:2px 0 14px 42px}.fx-swatch{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:0;border-radius:50%;background:var(--tag);color:#fff;transition:transform .12s var(--ease),box-shadow .12s ease}.fx-swatch:hover{transform:scale(1.1)}.fx-swatch.is-selected{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--tag)}.fx-swatch .fx-tag-dot{display:none}.fx-swatch .fx-svg{width:15px;height:15px;stroke-width:3}.fx-tagman-confirm{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin:0 0 12px 42px;padding:10px 10px 10px 12px;border-radius:var(--radius);background:var(--danger-soft);font-size:13px}.fx-tagman-confirm-actions{display:flex;gap:6px;margin-left:auto}.fx-tagman-confirm .fx-btn{height:32px;padding:0 12px}.fx-tagman-empty{display:flex;align-items:center;gap:10px;padding:18px 4px;color:var(--text-3);font-size:13px}.fx-labels-note{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:var(--radius);background:var(--surface-2);color:var(--text-2);font-size:12.5px;line-height:1.5}.fx-labels-note .fx-svg{width:14px;height:14px;margin-top:2px;color:var(--text-3)}.fx-labels-note .fx-link{padding:0;font-size:inherit}@media(max-width:640px){.fx-label-slot--inline .fx-chips{display:none}.fx-label-slot--sub:not(:empty){display:inline-flex;flex:0 1 auto;min-width:0}.fx-sub,.fx-sub.is-path{display:flex}.fx-sub .fx-chip{height:18px;font-size:11px}.fx-star .fx-svg{width:16px;height:16px}.fx-label-slot--tile-star:not(:empty){right:6px;bottom:6px;width:24px;height:24px}.fx-tile .fx-chip{max-width:84px}.fx-tag-nav .fx-tag-dot{margin:0 5px}.fx-labels-backdrop.is-sheet .fx-dialog-actions .fx-btn{flex:1;height:44px}.fx-tag-actions{flex-wrap:wrap}.fx-tag-actions-spacer{display:none}.fx-tag-manage{order:3;width:100%;justify-content:center;padding:8px 0 0}.fx-tag-option{min-height:46px;font-size:15px}.fx-tagman-main{min-height:56px}.fx-tagman .fx-icon-btn{width:40px;height:40px}.fx-swatches{gap:7px;padding-left:0}.fx-swatch{width:33px;height:33px}.fx-tagman-confirm{margin-left:0}}body.fx-dragging,body.fx-dragging *{cursor:grabbing!important;user-select:none!important;-webkit-user-select:none!important}body.fx-dragging.fx-drag-invalid,body.fx-dragging.fx-drag-invalid *{cursor:not-allowed!important}.fx-drag-ghost{position:fixed;left:0;top:0;z-index:3100;display:flex;flex-direction:column;align-items:flex-start;gap:6px;pointer-events:none;will-change:transform}.fx-drag-ghost-card{position:relative;display:flex;align-items:center;gap:10px;max-width:280px;padding:6px 14px 6px 6px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg);font-size:13.5px;font-weight:550;animation:fx-drag-lift .16s var(--ease) both;transition:border-color .12s ease}.fx-drag-ghost--stack .fx-drag-ghost-card{margin:0 8px 8px 0;box-shadow:4px 4px 0 -1px var(--surface),4px 4px 0 0 var(--border),8px 8px 0 -1px var(--surface),8px 8px 0 0 var(--border),var(--shadow-lg)}.fx-drag-ghost-card .fx-ficon{width:30px;height:30px;border-radius:8px}.fx-drag-ghost-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-drag-ghost-hint{padding:3px 9px;border-radius:999px;background:var(--selbar-bg);color:var(--selbar-text);font-size:12px;font-weight:550;white-space:nowrap;box-shadow:var(--shadow-md)}.fx-drag-ghost.is-valid .fx-drag-ghost-card{border-color:var(--accent)}.fx-drag-ghost.is-invalid .fx-drag-ghost-hint{background:var(--danger);color:#fff}.fx-drag-ghost.is-dropping .fx-drag-ghost-card,.fx-drag-ghost.is-dropping .fx-drag-ghost-hint{animation:fx-drag-drop .16s ease forwards}.fx-drag-ghost.is-cancelled{opacity:0;transition:opacity .15s ease}.fx-row.is-drag-source,.fx-tile.is-drag-source{opacity:.45}.fx-row.is-drop-target,.fx-row.is-drop-target:hover,.fx-tile.is-drop-target,.fx-crumb.is-drop-target,.fx-nav-item.is-drop-target{background:var(--accent-soft-2);box-shadow:inset 0 0 0 2px var(--accent);color:var(--text)}.fx-tile.is-drop-target{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.fx-row.is-drop-target .fx-ficon--folder,.fx-tile.is-drop-target .fx-ficon--folder{transform:scale(1.08);transition:transform .16s var(--ease)}.fx-row.is-drop-invalid,.fx-row.is-drop-invalid:hover,.fx-tile.is-drop-invalid,.fx-crumb.is-drop-invalid,.fx-nav-item.is-drop-invalid{background:var(--danger-soft);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--danger) 55%,transparent)}.fx-row.is-drop-accepted,.fx-tile.is-drop-accepted,.fx-crumb.is-drop-accepted,.fx-nav-item.is-drop-accepted{animation:fx-drop-accept .42s var(--ease)}@keyframes fx-drag-lift{0%{opacity:0;transform:scale(.92)}}@keyframes fx-drag-drop{to{opacity:0;transform:scale(.6)}}@keyframes fx-drop-accept{0%{background:var(--accent-soft-2);box-shadow:inset 0 0 0 2px var(--accent)}to{background:transparent;box-shadow:inset 0 0 0 2px transparent}}.fx-row.is-renaming,.fx-tile.is-renaming{z-index:4;overflow:visible}.fx-rename{position:relative;display:flex;flex:1;min-width:0;max-width:560px}.fx-tile .fx-rename{max-width:none;margin:-3px 0}.fx-rename-input{width:100%;height:30px;margin-left:-7px;padding:0 6px;border:1.5px solid var(--accent);border-radius:7px;outline:none;background:var(--surface);color:var(--text);box-shadow:0 0 0 3px var(--accent-ring);font:inherit;font-weight:500;user-select:text;-webkit-user-select:text}.fx-tile .fx-rename-input{margin-left:-4px;font-size:13px}.fx-rename.is-invalid .fx-rename-input{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.fx-rename.is-saving .fx-rename-input{opacity:.6;box-shadow:none;border-color:var(--border-strong)}.fx-rename.is-shaking{animation:fx-shake .32s ease}.fx-rename-error{position:absolute;left:-7px;top:calc(100% + 7px);z-index:20;width:max-content;max-width:min(340px,80vw);padding:6px 10px;border-radius:8px;background:var(--danger);color:#fff;font-size:12.5px;font-weight:500;line-height:1.35;white-space:normal;box-shadow:var(--shadow-md);animation:fx-pop .14s var(--ease) both}.fx-rename-error:before{content:"";position:absolute;top:-4px;left:14px;width:8px;height:8px;background:inherit;transform:rotate(45deg)}@keyframes fx-shake{20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.fx-rows{position:relative}.fx-rows>.fx-row{touch-action:pan-y pinch-zoom}.fx-row.is-swiping{z-index:2;background:var(--bg);will-change:transform}.fx-row.is-swipe-open{box-shadow:0 0 0 1px var(--border)}.fx-swipe-under{position:absolute;left:-8px;right:-8px;z-index:1;display:flex;border-radius:var(--radius);overflow:hidden;pointer-events:none}.fx-swipe-lead,.fx-swipe-trail{display:flex;height:100%;width:0;overflow:hidden;pointer-events:auto}.fx-swipe-trail{margin-left:auto}.fx-swipe-btn{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:0;border:0;color:#fff;font-size:11.5px;font-weight:600;white-space:nowrap;overflow:hidden;transition:flex-grow .18s var(--ease)}.fx-swipe-btn .fx-svg{width:20px;height:20px}.fx-swipe-btn.is-move{background:var(--accent)}.fx-swipe-btn.is-more{background:#8a94a6}.fx-swipe-btn.is-delete{background:var(--danger)}.fx-swipe-under.is-full-trailing .fx-swipe-btn.is-more{flex-grow:.0001}.fx-swipe-under.is-full-trailing .fx-swipe-btn.is-delete{align-items:flex-start;padding-left:26px}.fx-row.is-swipe-removing{pointer-events:none}body.file-browser-active{overscroll-behavior-y:none}.fx-content{position:relative}.fx-ptr{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;justify-content:center;height:0;pointer-events:none}.fx-ptr-disc{display:flex;align-items:center;justify-content:center;position:relative;width:38px;height:38px;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--accent);box-shadow:var(--shadow-md);opacity:min(1,calc(var(--ptr-progress, 0) * 1.6));transform:translateY(calc(var(--ptr-y, 0px) - 46px)) scale(calc(.7 + .3 * var(--ptr-progress, 0)))}.fx-ptr-ring{position:absolute;width:26px;height:26px;transform:rotate(-90deg)}.fx-ptr-track{stroke:var(--surface-3)}.fx-ptr-arc{stroke-dasharray:100;stroke-dashoffset:calc(100 - 100 * var(--ptr-progress, 0))}.fx-ptr-arrow{width:15px;height:15px;transition:transform .18s var(--ease)}.fx-ptr.is-armed .fx-ptr-arrow{transform:rotate(180deg)}.fx-ptr.is-refreshing .fx-ptr-arrow{opacity:0}.fx-ptr.is-refreshing .fx-ptr-ring{animation:fx-ptr-spin .8s linear infinite}.fx-ptr.is-refreshing .fx-ptr-arc{stroke-dashoffset:70}.fx-content.is-pulling>*:not(.fx-ptr){transform:translateY(var(--ptr-y, 0px))}.fx-content.is-ptr-animating>*:not(.fx-ptr),.fx-content.is-ptr-animating .fx-ptr-disc{transition:transform .3s var(--ease),opacity .3s ease}@keyframes fx-ptr-spin{0%{transform:rotate(-90deg)}to{transform:rotate(270deg)}}:root[data-fx-nav] #browserContent{view-transition-name:fx-content}::view-transition-old(root),::view-transition-new(root){animation:none}::view-transition-group(fx-content){animation-duration:.22s;animation-timing-function:var(--ease)}::view-transition-old(fx-content){animation:fx-vt-out-forward .14s var(--ease) both}::view-transition-new(fx-content){animation:fx-vt-in-forward .22s var(--ease) both}:root[data-fx-nav=back]::view-transition-old(fx-content){animation-name:fx-vt-out-back}:root[data-fx-nav=back]::view-transition-new(fx-content){animation-name:fx-vt-in-back}::view-transition-group(*.fx-crumb){animation-duration:.22s;animation-timing-function:var(--ease)}@keyframes fx-vt-out-forward{to{opacity:0;transform:translate(-28px)}}@keyframes fx-vt-in-forward{0%{opacity:0;transform:translate(36px)}}@keyframes fx-vt-out-back{to{opacity:0;transform:translate(28px)}}@keyframes fx-vt-in-back{0%{opacity:0;transform:translate(-36px)}}.fx-content.is-revealing .fx-row:not(.fx-skeleton),.fx-content.is-revealing .fx-tile:not(.fx-skeleton){animation:fx-reveal .22s var(--ease) both}@keyframes fx-reveal{0%{opacity:0;transform:translateY(3px)}}.preview-media.is-document{align-items:stretch}.preview-doc-host{display:flex;align-items:center;justify-content:center;width:min(980px,100%);height:100%;margin:0 auto}.preview-doc{display:flex;flex-direction:column;width:100%;height:100%;border:1px solid rgba(255,255,255,.08);border-radius:14px;overflow:hidden;background:var(--surface);color:var(--text);box-shadow:0 24px 70px #00000080;animation:fx-pop .2s var(--ease) both}.preview-doc-bar{flex:none;display:flex;align-items:center;gap:10px;height:46px;padding:0 10px 0 14px;border-bottom:1px solid var(--border);background:var(--surface-2)}.preview-doc-chip{flex:none;padding:3px 8px;border-radius:6px;background:var(--accent-soft);color:var(--accent-text);font-size:11.5px;font-weight:650;letter-spacing:.02em}.preview-doc-note{flex:1;min-width:0;overflow:hidden;color:var(--text-3);font-size:12.5px;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.preview-doc-toggle{flex:none;display:inline-flex;padding:2px;border-radius:9px;background:var(--surface-3)}.preview-doc-toggle button{height:28px;padding:0 12px;border:0;border-radius:7px;background:transparent;color:var(--text-2);font-size:12.5px;font-weight:550}.preview-doc-toggle button.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.preview-doc-body{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;outline:none}.preview-doc-body.is-table{display:flex;overflow:hidden}.fx-code{--line-h: 21px;padding:10px 0 18px;background:linear-gradient(to right,var(--surface-2) calc(var(--gutter) + 18px),transparent 0);color:var(--text);font-family:var(--mono);font-size:12.5px;line-height:var(--line-h);tab-size:4;min-height:100%}.fx-code-block{content-visibility:auto}.fx-code-line{position:relative;min-height:var(--line-h);padding:0 18px 0 calc(var(--gutter) + 32px);white-space:pre-wrap;overflow-wrap:anywhere}.fx-code-line:before{content:attr(data-ln);position:absolute;left:0;width:calc(var(--gutter) + 8px);color:var(--text-3);text-align:right;font-variant-numeric:tabular-nums;user-select:none;-webkit-user-select:none}.fx-code-line:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}.md-body{max-width:760px;margin:0 auto;padding:26px 34px 48px;color:var(--text);font-size:15px;line-height:1.65;overflow-wrap:anywhere}.md-body>:first-child{margin-top:0}.md-body h1,.md-body h2,.md-body h3,.md-body h4,.md-body h5,.md-body h6{margin:1.4em 0 .5em;line-height:1.25;font-weight:700;letter-spacing:-.01em}.md-body h1{font-size:1.85em;padding-bottom:.3em;border-bottom:1px solid var(--border)}.md-body h2{font-size:1.4em;padding-bottom:.25em;border-bottom:1px solid var(--border)}.md-body h3{font-size:1.15em}.md-body h4,.md-body h5,.md-body h6{font-size:1em}.md-body p,.md-body ul,.md-body ol,.md-body blockquote,.md-body pre,.md-body .md-table-wrap{margin:0 0 1em}.md-body ul,.md-body ol{padding-left:1.6em}.md-body li+li{margin-top:.25em}.md-body li>ul,.md-body li>ol{margin:.25em 0 0}.md-body li.md-task-item{list-style:none;margin-left:-1.35em}.md-task{display:inline-block;width:15px;height:15px;margin-right:8px;vertical-align:-2px;border:1.5px solid var(--border-strong);border-radius:4px;background:var(--surface)}.md-task.is-done{border-color:var(--accent);background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 11px no-repeat}.md-body a{color:var(--accent-text);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent);text-underline-offset:2px}.md-body a:hover{text-decoration-color:currentColor}.md-body code{padding:.15em .4em;border-radius:5px;background:var(--surface-2);font-family:var(--mono);font-size:.86em}.md-body pre.md-code{padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);overflow-x:auto;line-height:1.5}.md-body pre.md-code code{padding:0;background:none;font-size:13px}.md-body blockquote{padding:2px 0 2px 16px;border-left:3px solid var(--border-strong);color:var(--text-2)}.md-body blockquote>:last-child{margin-bottom:0}.md-body hr{height:1px;margin:1.6em 0;border:0;background:var(--border)}.md-body .md-table-wrap{overflow-x:auto}.md-body table{border-collapse:collapse;font-size:14px}.md-body th,.md-body td{padding:7px 12px;border:1px solid var(--border);overflow-wrap:normal}.md-body th{background:var(--surface-2);font-weight:600}.md-img{display:inline-flex;align-items:center;gap:6px;padding:1px 8px;border:1px dashed var(--border-strong);border-radius:6px;color:var(--text-2);font-size:.9em;text-decoration:none!important}.md-img:before{content:"";width:14px;height:14px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2.5'/%3E%3Ccircle cx='9' cy='9' r='2'/%3E%3Cpath d='m21 15-3.1-3.1a2 2 0 0 0-2.8 0L6 21'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2.5'/%3E%3Ccircle cx='9' cy='9' r='2'/%3E%3Cpath d='m21 15-3.1-3.1a2 2 0 0 0-2.8 0L6 21'/%3E%3C/svg%3E") center / contain no-repeat}.preview-doc-table{flex:1;min-width:0;overflow:auto;overscroll-behavior:contain}.preview-doc-table table{min-width:100%;border-collapse:separate;border-spacing:0;font-size:13px;font-variant-numeric:tabular-nums}.preview-doc-table th,.preview-doc-table td{max-width:360px;padding:7px 14px;border-bottom:1px solid var(--border);overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.preview-doc-table thead th{position:sticky;top:0;z-index:1;background:var(--surface-2);color:var(--text-2);font-weight:600}.preview-doc-table .preview-doc-rownum{position:sticky;left:0;z-index:1;width:1%;padding:7px 10px;border-right:1px solid var(--border);background:var(--surface);color:var(--text-3);font-weight:500;text-align:right}.preview-doc-table thead .preview-doc-rownum{z-index:2;background:var(--surface-2)}.preview-doc-table tbody tr:hover td{background:var(--surface-2)}.preview-doc--pdf{background:#525659}.preview-pdf-frame{flex:1;width:100%;border:0}.preview-notice{display:flex;flex-direction:column;align-items:center;gap:10px;max-width:380px;padding:32px 28px 28px;border:1px solid rgba(255,255,255,.1);border-radius:20px;background:#ffffff0f;color:#fff;text-align:center;animation:fx-pop .2s var(--ease) both}.preview-notice-art{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;margin-bottom:4px;border-radius:18px;background:#ffffff1a}.preview-notice-art .fx-svg{width:30px;height:30px;stroke-width:1.7}.preview-notice--pdf .preview-notice-art{background:#ef44442e;color:#ff8f8f}.preview-notice-title{margin:0;font-size:16px;font-weight:650;overflow-wrap:anywhere}.preview-notice-text{margin:0;font-size:13.5px;line-height:1.5;opacity:.72;overflow-wrap:anywhere}.preview-notice-action{margin-top:8px}@media(max-width:640px){.preview-doc-host{width:100%}.preview-doc{border:0;border-radius:0;box-shadow:none}.preview-doc-bar{padding:0 8px 0 12px}.md-body{padding:20px 18px 40px;font-size:15px}.fx-code{font-size:12px}.preview-notice{margin:0 20px}}.fx-selecting .fx-content{padding-bottom:calc(96px + var(--safe-b))}@media(max-width:640px){.fx-selecting .fx-content{padding-bottom:calc(150px + var(--safe-b))}}.archive-preview-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px}.archive-preview-backdrop{position:absolute;inset:0;background:#000000c7}.archive-preview-panel{position:relative;width:min(1200px,100%);max-height:92vh;overflow:auto;border:1px solid var(--border);border-radius:12px;padding:20px;color:var(--text);background:var(--surface)}.archive-preview-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.archive-preview-header h2{font-size:1.25rem;margin:0}.archive-preview-name{overflow-wrap:anywhere;margin:12px 0 8px}.archive-preview-status{font-size:.9rem;opacity:.8;min-height:1.5em}.archive-unlock-form{max-width:650px;display:grid;gap:16px}.archive-unlock-form label{display:grid;gap:6px}.archive-unlock-form button{justify-self:start}.archive-breadcrumb{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.archive-preview-columns{display:grid;grid-template-columns:minmax(200px,1fr) minmax(0,2fr);gap:18px}.archive-entry-list{max-height:64vh;overflow:auto}.archive-entry-row{display:flex;width:100%;justify-content:space-between;align-items:center;gap:12px;border:none;border-bottom:1px solid var(--border);padding:10px;color:inherit;background:transparent;text-align:left;overflow-wrap:anywhere}.archive-entry-row:hover,.archive-entry-row:focus-visible{background:var(--surface-2)}.archive-entry-row small{flex-shrink:0;opacity:.75}.archive-entry-preview{min-width:0;overflow-wrap:anywhere}.archive-entry-preview h3{font-size:1rem}.archive-text-preview{white-space:pre-wrap;overflow-wrap:anywhere;max-height:48vh;overflow:auto;padding:12px;background:var(--surface-2)}.archive-member-image,.archive-member-media{display:block;max-width:100%;max-height:52vh;margin-bottom:12px}.archive-member-pdf{display:block;width:100%;height:52vh;margin-bottom:12px;border:0}.archive-upgrade-progress{width:100%}@media(max-width:640px){.archive-preview-modal{padding:8px}.archive-preview-panel{padding:14px}.archive-preview-columns{grid-template-columns:1fr}.archive-entry-list{max-height:30vh}}
