| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- :root {
- --fb-bg-url: url('/fb-wallpaper/frappe.webp?v=20260306w');
- --fb-accent: #8caaee;
- --fb-accent-2: #ca9ee6;
- --fb-text: #c6d0f5;
- --fb-subtext: #a5adce;
- --fb-base: #303446;
- --fb-mantle: #292c3c;
- --fb-crust: #232634;
- --fb-surface: rgba(48, 52, 70, 0.78);
- --fb-surface-strong: rgba(41, 44, 60, 0.92);
- --fb-border: rgba(198, 208, 245, 0.20);
- }
- * { box-sizing: border-box; }
- html, body {
- margin: 0;
- height: 100%;
- color: var(--fb-text);
- font-family: "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
- }
- .bg {
- position: fixed;
- inset: 0;
- background:
- radial-gradient(circle at 15% 20%, color-mix(in srgb, var(--fb-accent-2) 28%, transparent), transparent 45%),
- radial-gradient(circle at 80% 15%, color-mix(in srgb, var(--fb-accent) 24%, transparent), transparent 40%),
- var(--fb-bg-url) center/cover no-repeat;
- opacity: 0.36;
- z-index: 0;
- }
- .overlay {
- position: fixed;
- inset: 0;
- background: linear-gradient(180deg, color-mix(in srgb, var(--fb-crust) 82%, transparent), color-mix(in srgb, var(--fb-crust) 92%, transparent));
- z-index: 0;
- }
- .topbar, .layout {
- position: relative;
- z-index: 1;
- }
- .topbar {
- height: 68px;
- display: grid;
- grid-template-columns: 220px 1fr 120px;
- align-items: center;
- gap: 12px;
- padding: 12px 18px;
- border-bottom: 1px solid var(--fb-border);
- background: var(--fb-surface-strong);
- backdrop-filter: blur(10px);
- }
- .brand {
- font-size: 16px;
- font-weight: 700;
- }
- .search-form {
- display: flex;
- gap: 8px;
- }
- .search-form input {
- flex: 1;
- height: 40px;
- border-radius: 10px;
- border: 1px solid var(--fb-border);
- background: color-mix(in srgb, var(--fb-base) 72%, transparent);
- color: var(--fb-text);
- padding: 0 12px;
- outline: none;
- }
- .search-form button,
- .back-link {
- height: 40px;
- border-radius: 10px;
- border: 1px solid var(--fb-border);
- padding: 0 14px;
- color: var(--fb-text);
- background: color-mix(in srgb, var(--fb-base) 72%, transparent);
- text-decoration: none;
- display: inline-flex;
- align-items: center;
- justify-content: center;
- cursor: pointer;
- }
- .search-form button:hover,
- .back-link:hover {
- background: color-mix(in srgb, var(--fb-accent) 20%, transparent);
- }
- .layout {
- display: grid;
- grid-template-columns: 360px 1fr;
- gap: 14px;
- padding: 14px;
- height: calc(100% - 68px);
- }
- .left-panel,
- .right-panel {
- border: 1px solid var(--fb-border);
- border-radius: 12px;
- background: var(--fb-surface);
- backdrop-filter: blur(8px);
- overflow: hidden;
- min-height: 0;
- }
- .panel-title {
- height: 46px;
- display: flex;
- align-items: center;
- padding: 0 14px;
- border-bottom: 1px solid var(--fb-border);
- font-size: 14px;
- font-weight: 700;
- }
- .hint {
- padding: 10px 14px;
- font-size: 12px;
- color: var(--fb-subtext);
- }
- .tree,
- .results {
- height: calc(100% - 78px);
- overflow: auto;
- padding: 0 8px 10px;
- }
- .tree ul {
- list-style: none;
- margin: 0;
- padding: 0 0 0 14px;
- }
- .tree-row {
- display: flex;
- align-items: center;
- gap: 8px;
- height: 30px;
- border-radius: 8px;
- padding: 0 8px;
- cursor: pointer;
- }
- .tree-row:hover { background: color-mix(in srgb, var(--fb-accent) 16%, transparent); }
- .tree-toggle {
- width: 16px;
- text-align: center;
- color: var(--fb-subtext);
- font-size: 11px;
- }
- .tree-icon { width: 16px; text-align: center; }
- .tree-name {
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- }
- .result-item {
- margin: 8px 8px 0;
- padding: 10px 12px;
- border-radius: 10px;
- border: 1px solid var(--fb-border);
- background: color-mix(in srgb, var(--fb-base) 56%, transparent);
- }
- .result-item a {
- color: var(--fb-accent);
- text-decoration: none;
- }
- .result-item a:hover { color: var(--fb-accent-2); text-decoration: underline; }
- .result-path {
- margin-top: 4px;
- font-size: 12px;
- color: var(--fb-subtext);
- word-break: break-all;
- }
- @media (max-width: 980px) {
- .topbar {
- grid-template-columns: 1fr;
- height: auto;
- }
- .layout {
- grid-template-columns: 1fr;
- height: auto;
- }
- .left-panel, .right-panel {
- min-height: 320px;
- }
- }
|