:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;color-scheme:light;--green:#76bd26;--green-dark:#56a40e;--text:#243139;--muted:#78838c;--panel:#fff;--line:#e8edf0;--wall-blur:0px;--wall-brightness:75%;--early-wall:url('default-wallpaper.svg')}
*{box-sizing:border-box}html,body{margin:0;width:100%;min-height:100%;}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.56;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #7bce39;outline-offset:2px}a{color:inherit;text-decoration:none}.hidden{display:none!important}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.muted{color:var(--muted)}.smaller{font-size:12px}.home-page{height:100dvh;overflow:hidden;background:#203741;color:#fff}.wallpaper-image,.wallpaper-video{position:fixed;inset:-35px;width:calc(100% + 70px);height:calc(100% + 70px);z-index:0;object-fit:cover;filter:blur(var(--wall-blur)) brightness(var(--wall-brightness));transform:scale(1.012)}.wallpaper-image{background-image:var(--early-wall);background-position:center;background-size:cover;transition:opacity .2s}.wallpaper-video{display:none}.wallpaper-mask{position:fixed;inset:0;background:linear-gradient(to bottom,rgba(8,27,30,.16),rgba(8,21,29,.02) 49%,rgba(10,20,25,.26));z-index:1;pointer-events:none}.desktop{position:relative;z-index:2;min-height:100dvh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:26px 42px;gap:16px}.logo-mark{display:flex;align-items:center;gap:10px;font-size:14px;letter-spacing:.3px;font-weight:600;text-shadow:0 1px 7px #0003}.tiny-lime,.brand-icon{display:grid;place-items:center;background:#83cc28;color:white;border-radius:12px;font-weight:800}.tiny-lime{width:27px;height:27px;font-size:21px}.top-actions{display:flex;align-items:center;gap:9px;position:relative}.round-tool,.user-pill{background:#ffffff13;color:#fff;border:1px solid #ffffff32;height:34px;border-radius:10px;backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;transition:background .2s}.round-tool{width:36px}.round-tool svg{width:18px;height:18px}.round-tool:hover,.user-pill:hover{background:#ffffff36}.user-pill{padding:0 12px 0 5px;gap:9px;font-size:12px}.user-avatar{width:25px;height:25px;background:#86c836;border-radius:7px;display:grid;place-items:center;font-size:12px;font-weight:700}.user-menu{position:absolute;z-index:20;top:43px;right:0;width:155px;border-radius:13px;padding:5px;background:#fff;color:#26333a;box-shadow:0 15px 38px #14233152}.user-menu a,.user-menu button{display:block;width:100%;text-align:left;padding:12px 11px;background:transparent;border:0;border-radius:9px;font-size:13px}.user-menu a:hover,.user-menu button:hover{background:#f0f4f1}.hero{width:min(690px,calc(100% - 36px));margin:clamp(48px,12vh,150px) auto 0;display:flex;align-items:center;flex-direction:column}.clock{font-size:clamp(60px,7vw,89px);line-height:1;font-weight:300;letter-spacing:-4.5px;text-shadow:0 2px 24px #0016;font-variant-numeric:tabular-nums}.today-date{font-size:13px;margin-top:13px;margin-bottom:30px;font-weight:400;letter-spacing:.2px;text-shadow:0 1px 8px #0003}.search-bar{height:56px;width:min(630px,100%);position:relative;display:flex;align-items:center;background:#ffffffee;border:1px solid #ffffffa6;border-radius:15px;box-shadow:0 12px 38px #071e223d;color:#29363a;transition:box-shadow .16s,background .16s}.search-bar:focus-within{background:#fff;box-shadow:0 13px 42px #071e223f,0 0 0 3px #ffffff25}.search-engine{border:0;background:transparent;display:flex;align-items:center;gap:4px;padding:0 14px;height:100%;color:#77858c}.engine-letter{font-size:16px;color:#7ebd26;font-weight:800;width:19px;text-align:center}.search-engine svg{width:13px;height:13px;stroke-width:2}.search-bar input{width:100%;min-width:0;height:100%;border:0;background:transparent;outline:none!important;font-size:15px;color:#23313b;flex:1}.search-bar input::placeholder{color:#9aa2aa}.search-submit{border:0;background:transparent;width:62px;height:100%;color:#6cb924;display:grid;place-items:center}.search-submit:hover{color:#358409}.search-submit svg{width:20px;height:20px}.engine-menu{position:absolute;top:66px;left:0;width:225px;background:#fff;border:1px solid #e9ecee;border-radius:13px;box-shadow:0 18px 40px #1c2b3750;padding:7px;z-index:24}.engine-option{width:100%;border:0;background:none;display:flex;align-items:center;justify-content:space-between;padding:12px 13px;border-radius:9px;font-size:13px;color:#2f3b43}.engine-option:hover{background:#f2f6f1}.engine-option.selected{color:#62ad18}.search-tip{margin:37px 0 0;font-size:12px;letter-spacing:.4px;text-shadow:0 2px 13px #071d27ad;color:#ffffffc5}.bookmark-dock{width:min(1050px,calc(100% - 78px));min-height:54px;display:flex;align-items:stretch;gap:0;position:absolute;left:50%;bottom:76px;transform:translateX(-50%);border:1px solid #ffffff92;background:#ffffffdf;backdrop-filter:blur(24px);color:#3a454e;border-radius:14px;box-shadow:0 12px 45px #0a242e52;padding:4px 6px}.dock-label{display:flex;align-items:center;gap:7px;padding:0 13px 0 11px;flex-shrink:0;font-size:12px;font-weight:600;color:#66737d;border-right:1px solid #d5dce2;white-space:nowrap}.dock-label svg{width:16px;height:16px;stroke:#72ba26}.bookmark-track{display:flex;align-content:flex-start;align-items:center;gap:2px;flex:1;overflow-x:auto;overflow-y:hidden;padding:2px 8px;scrollbar-width:thin;scrollbar-color:#c4cbd1 transparent;min-width:0}.bookmark-item,.folder-trigger{height:38px;min-width:0;max-width:185px;border-radius:8px;color:#404b56;display:flex;align-items:center;gap:7px;flex-shrink:0;border:1px solid transparent;background:transparent;padding:0 10px;font-size:12px;white-space:nowrap;transition:background .12s}.bookmark-item{cursor:pointer}.bookmark-item:hover,.folder-trigger:hover{background:#dbe5e486}.bookmark-item.dragging{opacity:.3}.bookmark-item.drop-before{border-left:2px solid #6ac027}.bookmark-item img,.popup-bookmark img{height:16px;width:16px;object-fit:contain;flex-shrink:0;border-radius:3px}.bookmark-item span,.folder-trigger span{overflow:hidden;text-overflow:ellipsis}.bookmark-placeholder{width:16px;height:16px;border-radius:4px;flex-shrink:0;display:grid;place-items:center;background:#e9eef0;color:#84939a;font-size:10px}.folder-trigger{color:#46545e}.folder-trigger svg{width:16px;height:16px;color:#d5a53d;fill:#efd58d57;stroke-width:1.7}.folder-trigger.active{background:#dfeae0}.folder-popup{position:fixed;z-index:35;bottom:140px;left:50%;width:320px;max-height:min(50vh,460px);display:flex;flex-direction:column;background:#fffffffa;color:#273640;border-radius:13px;border:1px solid #e5ebeb;box-shadow:0 22px 56px #0c24368f;overflow:hidden}.popup-head{padding:15px 17px 11px;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #eff0f2}.popup-list{padding:6px;overflow-y:auto}.popup-bookmark{height:39px;border-radius:8px;display:flex;gap:10px;align-items:center;padding:0 10px;font-size:12px;cursor:pointer;color:#46535d}.popup-bookmark:hover{background:#edf4ec}.popup-bookmark span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.popup-actions{display:flex;gap:6px}.popup-actions button{border:0;background:transparent;font-size:12px;color:#78aa42}.dock-add{color:#70b52c;border:0;background:transparent;min-width:38px;font-size:22px;font-weight:300}.dock-add:hover{background:#e3f0d8;border-radius:8px}.footer-line{margin-top:auto;display:flex;justify-content:space-between;align-items:center;padding:0 43px 23px;font-size:11px;color:#ffffffb4;text-shadow:0 1px 9px #051e2870}.footer-line button{font-size:11px;border:0;background:transparent;color:inherit;padding:4px}.footer-line i{display:inline-block;margin:0 11px;height:11px;border-left:1px solid #ffffff77;vertical-align:middle}.drop-overlay{position:fixed;inset:12px;border:2px dashed #dfffad;border-radius:22px;z-index:70;background:#16352fdc;backdrop-filter:blur(18px);display:grid;place-items:center;text-align:center;pointer-events:none}.drop-overlay>div{padding:30px;color:#fff}.drop-overlay span{font-size:65px;font-weight:200}.drop-overlay strong{font-size:20px;display:block;margin:12px 0}.drop-overlay p{font-size:13px;color:#cbe2d5}.toast{position:fixed;z-index:100;left:50%;bottom:25px;transform:translateX(-50%);background:#16272de8;border:1px solid #ffffff33;border-radius:9px;color:white;padding:12px 19px;max-width:90vw;text-align:center;font-size:13px;box-shadow:0 10px 24px #0b22274f}.screen-cover,.modal-cover{position:fixed;inset:0;background:#08192088;z-index:50;backdrop-filter:blur(2px)}.drawer{position:fixed;top:0;bottom:0;right:0;width:min(440px,100%);background:#fff;color:#203038;z-index:51;display:flex;flex-direction:column;box-shadow:-10px 0 60px #001b2040}.drawer-head{height:114px;display:flex;justify-content:space-between;align-items:center;padding:25px 28px 16px;border-bottom:1px solid #eff0f1;flex-shrink:0}.overline{font-size:10px;letter-spacing:2px;color:#96a49e}.drawer-head h2{font-size:21px;margin:7px 0 0;letter-spacing:-.5px}.icon-btn{background:#f1f4f4;border:0;border-radius:9px;width:34px;height:34px;color:#62727b}.icon-btn:hover{background:#e7eded}.drawer-body{overflow:auto;padding:24px 27px 45px;flex:1}.setting-group{margin-bottom:29px}.setting-group h3{font-size:13px;margin:0 0 15px;display:flex;justify-content:space-between;align-items:center;color:#34434b}.setting-group p{font-size:12px;line-height:1.8;color:#87929b}.field-label{font-size:12px;display:block;color:#60707a;margin:14px 0 7px}.setting-group input[type="range"]{accent-color:#73ba22;width:100%}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid #eff2f2;font-size:13px}.setting-row input[type="checkbox"]{accent-color:#79bb30;width:17px;height:17px}.select-field,.drawer select,.drawer input[type=text]{border-radius:10px;border:1px solid #dde4e5;background:#fff;padding:10px;color:#44545c;min-width:128px}.wall-upload-tile{width:100%;border:1px dashed #c3d5be;border-radius:13px;background:#f7fbf5;padding:24px 15px;color:#599926;font-size:14px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}.wall-upload-tile span{font-size:12px;color:#849287}.wall-upload-tile:hover{background:#eff8e9}.reset-btn{border:1px solid #e1e7ea;border-radius:9px;background:#fff;color:#50636c;padding:9px 14px;font-size:12px;margin-top:12px}.drawer-primary{border:0;background:#7abd27;color:#fff;border-radius:9px;padding:11px 17px;font-size:12px}.drawer-primary:hover{background:#65a924}.folder-list{margin:10px 0 20px;display:flex;flex-wrap:wrap;gap:6px}.folder-tab{border:1px solid #dfe6e8;background:#fff;border-radius:8px;padding:9px 12px;font-size:12px;color:#62717a}.folder-tab.active{background:#e9f6e2;color:#579b1a;border-color:#d3e8c7}.manage-item{min-height:54px;display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid #f0f2f3}.manage-item img{width:20px;height:20px;object-fit:contain}.manage-item .manage-meta{flex:1;min-width:0}.manage-meta strong{font-size:12px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manage-meta small{font-size:11px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#9da7ab;margin-top:3px}.manage-item button{background:#f3f6f4;border:0;border-radius:7px;padding:7px 9px;font-size:11px;color:#54666c}.manage-item button:hover{background:#e6eee4}.manage-toolbar{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:22px}.manage-toolbar button{border-radius:8px;border:1px solid #e0e7e2;background:#fff;color:#52675a;padding:9px 11px;font-size:12px}.manage-toolbar .filled{background:#7abd27;border-color:#7abd27;color:#fff}.manage-empty{text-align:center;font-size:12px;color:#9ca7a3;padding:38px 5px}.modal-cover{z-index:80;display:grid;place-items:center;padding:15px}.modal{background:#fff;color:#26363c;width:min(450px,100%);border-radius:16px;box-shadow:0 24px 80px #08212666;padding:25px 27px 27px;max-height:93vh;overflow:auto}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.modal-head h3{margin:0;font-size:18px}.modal form label,.auth-box form label,.admin-form label{font-size:12px;color:#6b7880;display:block;margin:15px 0 8px}.modal input,.modal select,.auth-box input,.admin-form input,.inline-admin input{border:1px solid #dce5e7;border-radius:9px;padding:12px 13px;height:43px;background:#fff;width:100%;outline:none;font-size:13px;color:#29353d}.modal input:focus,.auth-box input:focus{border-color:#92c971;box-shadow:0 0 0 3px #eaf6e0}.input-with-action{position:relative}.input-with-action input{padding-right:85px}.input-with-action button{position:absolute;right:6px;top:7px;border:0;background:#ecf5e7;color:#6a9e38;font-size:11px;border-radius:6px;padding:7px 10px}.modal-extra{display:flex;align-items:center;gap:12px;margin-top:10px}.upload-icon-label{font-size:12px!important;color:#73ad42!important;border:1px solid #d4e7ca;border-radius:8px;padding:9px 11px;margin:0!important;cursor:pointer}.icon-preview{height:36px;width:36px;border:1px solid #e4e9e9;border-radius:8px;display:grid;place-items:center;overflow:hidden}.icon-preview img{width:24px;height:24px;object-fit:contain}.modal-buttons{margin-top:23px;display:flex;justify-content:space-between;align-items:center;gap:10px}.main-btn{background:#75bc27;border:0;color:#fff;border-radius:9px;padding:12px 20px;font-size:13px;font-weight:600}.main-btn:hover{background:#60a719}.subtle-btn{border:0;background:transparent;color:#db6e64;font-size:12px;padding:10px}.auth-page{min-height:100vh;display:grid;place-items:center;padding:22px;background:linear-gradient(145deg,#eef8e9,#f6f9f9 55%,#e1efeb);color:#28353b}.auth-box{width:min(418px,100%);background:#fff;border:1px solid #e5ebe5;box-shadow:0 28px 80px #456c5b22;border-radius:20px;padding:40px 40px 37px}.brand-icon{width:49px;height:49px;font-size:31px;border-radius:15px;box-shadow:0 7px 17px #74bd2940}.auth-box h1{font-size:27px;letter-spacing:-.8px;font-weight:640;margin:23px 0 8px}.auth-box p{font-size:12px;line-height:1.9;margin:0 0 25px}.auth-box input{height:45px}.auth-box .main-btn{width:100%;margin-top:27px;height:46px}.auth-box .auth-note{text-align:center;margin:22px 0 0;font-size:11px;color:#9ba7a6}.error-msg,.success-msg{padding:11px 13px;font-size:12px;border-radius:8px;background:#fff0ee;color:#c65b52;margin:15px 0}.success-msg{background:#f0fae9;color:#4f9724}.admin-page{min-height:100vh;background:#f6f8f7;color:#2b383e}.admin-top{background:white;border-bottom:1px solid #e8edef;padding:20px max(30px,calc((100% - 1060px)/2));display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:13px}.admin-top a{color:#5c9f2b}.admin-top span{color:#8d9a9d}.admin-main{max-width:1060px;margin:50px auto;padding:0 25px 70px}.admin-main h1{font-size:26px;letter-spacing:-.7px;margin:0 0 7px}.admin-main>.muted,.admin-main>div>.muted{font-size:12px}.admin-card{border:1px solid #e6ebec;border-radius:14px;background:white;padding:25px 27px;margin-top:25px}.admin-card h2{font-size:16px;margin:0 0 21px}.admin-card h2 small{font-size:11px;color:#8a969a}.admin-form{display:flex;align-items:end;gap:15px;flex-wrap:wrap}.admin-form>div{flex:1;min-width:190px}.admin-form label{margin-top:0}.admin-form .main-btn{margin-bottom:0;height:43px}.admin-user{display:flex;align-items:center;gap:20px;border-top:1px solid #f0f2f2;padding:17px 0;flex-wrap:wrap}.admin-user>div:first-child{flex:1;min-width:170px}.admin-user strong{font-size:14px}.role-tag{font-size:10px;background:#eafaed;color:#5e9d23;border-radius:4px;padding:3px 5px}.inline-admin{display:flex;align-items:center;gap:6px}.inline-admin input{width:200px;height:36px}.small-btn{height:36px;border:1px solid #dfe6e5;background:#fff;border-radius:7px;font-size:12px;color:#52745a;padding:0 13px}.small-btn.danger{color:#bd645c}.admin-user .smaller{margin-top:6px}@media(max-width:700px){.topbar{padding:17px 16px}.logo-mark{font-size:12px}.top-actions{gap:6px}.top-actions .round-tool{width:31px;height:32px}.user-pill{padding:4px}.user-pill>span:last-child{display:none}.hero{margin-top:clamp(62px,13vh,120px)}.clock{font-size:69px}.today-date{margin-bottom:29px}.search-bar{height:53px;border-radius:13px}.search-tip{margin-top:29px}.bookmark-dock{width:calc(100% - 24px);bottom:68px;min-height:54px;padding:4px}.bookmark-track{padding:3px 4px}.dock-label{padding:0 8px}.dock-label span{display:none}.bookmark-item,.folder-trigger{padding:0 7px;max-width:115px}.footer-line{padding:0 15px 20px;font-size:10px}.folder-popup{width:min(340px,calc(100% - 30px));bottom:133px}.drawer-head{height:96px;padding:22px}.drawer-body{padding:22px}.auth-box{padding:34px 27px}.admin-main{margin:25px auto}.admin-top{padding:16px}.inline-admin input{width:150px}}@media(max-height:620px){.hero{margin-top:12px}.bookmark-dock{bottom:53px}.footer-line{padding-bottom:12px}.clock{font-size:58px}.today-date{margin-bottom:14px}.search-tip{margin-top:17px}}
/* 深浅主题设置只改变弹层与书签栏色彩，保持壁纸的视觉氛围 */
html[data-theme="dark"] .bookmark-dock{background:#1e292dea;border-color:#607073;color:#d5dfe1}
html[data-theme="dark"] .dock-label{color:#b4bfc2;border-right-color:#506062}
html[data-theme="dark"] .bookmark-item,html[data-theme="dark"] .folder-trigger{color:#e5edef}
html[data-theme="dark"] .bookmark-item:hover,html[data-theme="dark"] .folder-trigger:hover{background:#59696b77}
html[data-theme="dark"] .bookmark-placeholder{background:#465558}
html[data-theme="dark"] .folder-popup{background:#1e292d;color:#dbe6e9;border-color:#5c6c70}
html[data-theme="dark"] .popup-head{border-bottom-color:#405357}
html[data-theme="dark"] .popup-bookmark{color:#dce5e7}
html[data-theme="dark"] .popup-bookmark:hover{background:#344b4b}
html[data-theme="dark"] .dock-add{color:#b9dc8b}

html.early-video .wallpaper-image{opacity:0}
/* 本地壁纸从 IndexedDB 异步读回前不展示默认图，避免刷新时闪烁。 */
html.wallpaper-pending .wallpaper-image,html.wallpaper-pending .wallpaper-video{opacity:0!important}
html.wallpaper-pending .home-page{background:linear-gradient(145deg,#173d46,#284b52,#192932)}

/* v2.1 书签移入搜索框下方，不再使用底部白色 Dock 容器。 */
.hero{width:min(760px,calc(100% - 36px));margin:clamp(52px,12vh,145px) auto 0}
.bookmark-dock,
html[data-theme="dark"] .bookmark-dock{
  position:relative;left:auto;bottom:auto;transform:none;
  width:min(630px,100%);height:auto;min-height:42px;
  margin:16px auto 0;padding:0;
  border:0;background:transparent;backdrop-filter:none;box-shadow:none;
  border-radius:0;display:flex;align-items:flex-start;gap:5px;
  color:#fff;
}
.bookmark-track{gap:3px;align-content:flex-start;align-items:center;min-height:40px;min-width:0;padding:0;
  scrollbar-width:thin;scrollbar-color:#ffffff6b transparent}
.bookmark-item,.folder-trigger,
html[data-theme="dark"] .bookmark-item,html[data-theme="dark"] .folder-trigger{
  height:39px;min-height:39px;max-width:175px;padding:0 10px;
  border:1px solid transparent;border-radius:9px;
  color:#fff;background:transparent;
  text-shadow:0 1px 7px #0c263b70;font-size:12px;font-weight:500;
  transition:background .18s ease,transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.bookmark-item:hover,.folder-trigger:hover,
html[data-theme="dark"] .bookmark-item:hover,
html[data-theme="dark"] .folder-trigger:hover{
  background:#ffffff33;border-color:#ffffff2b;transform:translateY(-2px);
  box-shadow:0 6px 18px #001a2220;
}
.bookmark-item:active,.folder-trigger:active{transform:scale(.96)}
.bookmark-item img,.popup-bookmark img{filter:drop-shadow(0 1px 1px #0002)}
.folder-trigger svg{color:#f4cc75;fill:#f8cb7350;filter:drop-shadow(0 1px 4px #1115)}
.bookmark-item.drop-before{border-left:2px solid #efffc3;background:#ffffff2a}
.folder-trigger.active{background:#ffffff3c;border-color:#ffffff50}
html[data-theme="dark"] .folder-trigger.active{background:#ffffff32}
.bookmark-placeholder,
html[data-theme="dark"] .bookmark-placeholder{background:#ffffff28;color:#fff}
.dock-add,
html[data-theme="dark"] .dock-add{
  width:38px;min-width:38px;height:38px;color:#fff;font-size:22px;
  text-shadow:0 1px 5px #001a2270;border-radius:9px;
  transition:background .18s,transform .18s;
}
.dock-add:hover,.dock-add:focus-visible{background:#ffffff31;transform:rotate(90deg)}
.dock-add:active{transform:rotate(90deg) scale(.88)}
.bookmark-empty{font-size:12px;white-space:nowrap;color:#ffffffe0;align-self:center;
  text-shadow:0 2px 12px #0008;padding:0 4px}
.search-tip{margin:19px 0 0;opacity:.86;transition:opacity .25s}
.folder-popup{bottom:auto;width:min(320px,calc(100vw - 24px));z-index:35;
  animation:popupEnter .19s cubic-bezier(.2,.8,.2,1) both;transform-origin:top left}
.wallpaper-poster{
 position:fixed;inset:-35px;width:calc(100% + 70px);height:calc(100% + 70px);
 z-index:0;pointer-events:none;object-fit:cover;
 background-color:#223c44;
 background-image:var(--wall-poster-image,none);
 background-position:center;background-size:cover;
 filter:blur(var(--wall-blur)) brightness(var(--wall-brightness));
 transform:scale(1.012);opacity:1;
 transition:opacity .38s ease,filter .16s linear;
}
.wallpaper-image,.wallpaper-video{
 opacity:0;transition:opacity .38s ease,filter .16s linear;
}
html.wallpaper-ready .wallpaper-poster{opacity:0}
html.wallpaper-ready .wallpaper-image,html.wallpaper-ready .wallpaper-video{opacity:1}
/* 始终通过背景预览完成第一次绘制，加载期间不允许显示默认 SVG 图。 */
html.wallpaper-pending .wallpaper-image,
html.wallpaper-pending .wallpaper-video{opacity:0!important}
html.wallpaper-pending .home-page{background:#223c44}
.wallpaper-image{background-image:none}
.hero .clock{animation:softRise .6s .08s both}
.hero .today-date{animation:softRise .56s .17s both}
.hero .search-bar{animation:softRise .55s .22s both}
.bookmark-dock{animation:softRise .55s .3s both}
.hero .search-tip{animation:softRise .55s .38s both}
.topbar{animation:softFade .5s ease both}
.search-bar{transition:box-shadow .25s ease,background .25s ease,transform .25s ease}
.search-bar:focus-within{transform:translateY(-2px);box-shadow:0 18px 52px #071e224b,0 0 0 3px #ffffff28}
.search-engine,.search-submit{transition:background .18s,color .18s,transform .18s}
.search-engine:hover{background:#f5f9f1;border-radius:15px 0 0 15px}
.search-engine:active,.search-submit:active{transform:scale(.92)}
.round-tool,.user-pill{transition:background .18s,border-color .18s,transform .18s,box-shadow .18s}
.round-tool:hover,.user-pill:hover{transform:translateY(-2px);border-color:#ffffff61;box-shadow:0 5px 15px #09202a3a}
.round-tool:active,.user-pill:active{transform:scale(.94)}
.user-menu:not(.hidden),.engine-menu:not(.hidden){animation:popupEnter .18s cubic-bezier(.2,.8,.2,1) both;transform-origin:top}
.user-menu a,.user-menu button,.engine-option{transition:background .16s ease,color .16s ease}
.folder-popup .popup-bookmark{transition:background .16s ease,padding .16s ease}
.folder-popup .popup-bookmark:hover{padding-left:14px}
.drawer:not(.hidden){animation:drawerSlideIn .3s cubic-bezier(.2,.75,.2,1) both}
.screen-cover:not(.hidden),.modal-cover:not(.hidden){animation:softFade .2s ease both}
.modal:not(.hidden){animation:modalAppear .25s cubic-bezier(.2,.75,.2,1) both}
.drop-overlay:not(.hidden){animation:dropArrive .22s ease both}
.drop-overlay{border-color:#d6ffa6;background:#092721d9}
.drop-overlay>div{animation:softRise .22s ease both}
.toast:not(.hidden){animation:toastAppear .23s cubic-bezier(.2,.8,.2,1) both}
.wall-upload-tile,.main-btn,.manage-toolbar button,.folder-tab,.icon-btn{transition:background .18s,border-color .18s,transform .18s,box-shadow .18s}
.wall-upload-tile:hover,.main-btn:hover,.manage-toolbar button:hover,.folder-tab:hover{transform:translateY(-1px)}
.wall-upload-tile:active,.main-btn:active,.manage-toolbar button:active{transform:scale(.985)}
@keyframes softRise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes softFade{from{opacity:0}to{opacity:1}}
@keyframes popupEnter{from{opacity:0;transform:translateY(-8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes drawerSlideIn{from{opacity:.7;transform:translateX(28px)}to{opacity:1;transform:translateX(0)}}
@keyframes modalAppear{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes toastAppear{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes dropArrive{from{opacity:0}to{opacity:1}}
@media(max-width:700px){
 .hero{width:calc(100% - 24px);margin-top:clamp(50px,13vh,105px)}
 .bookmark-dock{width:100%;margin-top:13px}
 .bookmark-item,.folder-trigger{max-width:134px;padding:0 7px}
 .search-tip{margin-top:16px}
 .folder-popup{bottom:auto}
}
@media(max-height:620px){
 .hero{margin-top:14px}
 .bookmark-dock{margin-top:8px}
 .search-tip{margin-top:7px}
 .clock{font-size:58px}
 .today-date{margin-bottom:12px}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}


/* v2.2 —— 搜索菜单层级 / 紧凑胶囊搜索 / 宽书签栏 / 纯图标操作区 */
.hero{width:min(960px,calc(100% - 32px))}
.search-bar{
  width:min(536px,100%);height:46px;min-height:46px;border-radius:999px;
  z-index:40;isolation:isolate;overflow:visible;
  box-shadow:0 9px 30px #071e2235;
}
.search-bar:focus-within{transform:none;box-shadow:0 11px 36px #071e223b,0 0 0 2px #ffffff26}
.search-bar input{font-size:14px}
.search-engine{padding:0 13px 0 18px;border-radius:999px 0 0 999px}
.search-engine:hover{border-radius:999px 0 0 999px}
.search-submit{width:49px;min-width:49px;border-radius:0 999px 999px 0}
.search-submit svg{width:18px;height:18px}
.engine-menu{
  top:calc(100% + 9px);left:7px;z-index:1000;
  width:210px;max-height:min(360px,60vh);overflow-y:auto;
  box-shadow:0 17px 43px #10202d66;
}
.bookmark-dock,html[data-theme="dark"] .bookmark-dock{
  width:min(840px,100%);max-width:100%;margin-top:17px;
  z-index:1;position:relative;animation:none;
}
.bookmark-track{min-height:40px;gap:4px}
.bookmark-item,.folder-trigger,
html[data-theme="dark"] .bookmark-item,html[data-theme="dark"] .folder-trigger{
  font-size:14px;font-weight:500;max-width:195px;height:39px;min-height:39px;
  transition:none!important;animation:none!important;transform:none!important;
  box-shadow:none!important;
}
.bookmark-item:hover,.folder-trigger:hover,
.bookmark-item:active,.folder-trigger:active,
html[data-theme="dark"] .bookmark-item:hover,
html[data-theme="dark"] .folder-trigger:hover{
  background:transparent!important;border-color:transparent!important;
  transform:none!important;box-shadow:none!important;
}
.folder-trigger.active,html[data-theme="dark"] .folder-trigger.active{
  background:transparent!important;border-color:transparent!important;
}
.bookmark-item.drop-before{border-left-color:#efffc3!important}
.dock-add,html[data-theme="dark"] .dock-add{
  width:35px;min-width:35px;height:39px;padding:0;border:0;border-radius:0;
  background:transparent!important;box-shadow:none!important;
  transition:none!important;transform:none!important;animation:none!important;
}
.dock-add:hover,.dock-add:focus-visible,.dock-add:active,
html[data-theme="dark"] .dock-add:hover{
  background:transparent!important;transform:none!important;box-shadow:none!important;
}
.top-actions .round-tool,.top-actions .user-pill{
  background:transparent!important;border:0!important;box-shadow:none!important;
  backdrop-filter:none!important;transform:none!important;animation:none!important;
  transition:none!important;border-radius:0;
}
.top-actions .round-tool{width:31px;height:34px;padding:0;color:#fff}
.top-actions .round-tool svg{height:19px;width:19px}
.top-actions .user-pill{height:34px;padding:0 3px;gap:7px}
.top-actions .user-avatar{background:transparent;border:0;border-radius:0;width:23px;height:27px}
.top-actions .round-tool:hover,.top-actions .round-tool:active,
.top-actions .user-pill:hover,.top-actions .user-pill:active{
  background:transparent!important;border:0!important;transform:none!important;
  box-shadow:none!important;filter:none!important;
}
/* 菜单打开时保留更高层级，避免和下面的书签区产生重叠遮挡。 */
.hero:has(.engine-menu:not(.hidden)) .search-bar{z-index:100}
@media(max-width:700px){
 .hero{width:calc(100% - 22px)}
 .search-bar{width:min(480px,calc(100% - 18px));height:45px;min-height:45px;border-radius:999px}
 .bookmark-dock{width:100%;margin-top:13px}
 .bookmark-item,.folder-trigger{font-size:13px;max-width:148px;padding:0 6px}
 .top-actions .round-tool{width:29px;height:32px}
 .top-actions .user-pill{padding:0 1px}
}
/* 搜索框不再使用启动时的透明度动画，保证下拉菜单从第一帧就是不透明且在书签上方。 */
.hero .search-bar{animation:none!important}
.engine-menu:not(.hidden){animation:none!important;opacity:1!important;transform:none!important}


/* v2.3 —— 书签区域全宽自动换行；图标直接使用源站 /favicon.ico */
.home-page{
  height:auto;min-height:100dvh;overflow-x:hidden;overflow-y:auto;
}
.desktop{min-height:100dvh;height:auto;}
.hero{min-height:0;}
.bookmark-dock,
html[data-theme="dark"] .bookmark-dock{
  width:min(840px,100%);height:auto;max-height:none!important;
  overflow:visible!important;margin-top:17px;padding:0;
  display:block;position:relative;
}
.bookmark-track{
  width:100%;min-width:0;min-height:39px;height:auto;max-height:none!important;
  padding:0;display:flex;flex-flow:row wrap!important;align-items:center;align-content:flex-start;
  justify-content:flex-start;column-gap:4px;row-gap:5px;
  overflow:visible!important;scrollbar-width:none;
}
.bookmark-item,.folder-trigger{
  flex:0 1 auto;min-width:0;max-width:min(195px,100%);
  margin:0;white-space:nowrap;
}
.bookmark-track .dock-add{
  flex:0 0 35px;align-self:center;margin:0;
}
.bookmark-placeholder svg{width:14px;height:14px;stroke:currentColor;stroke-width:1.6;fill:none;}
.bookmark-placeholder{background:transparent!important;border-radius:0;}
.manage-favicon{width:20px;height:20px;flex:0 0 20px;display:grid;place-items:center;}
.manage-favicon img{width:18px;height:18px;object-fit:contain;}
.manage-favicon .bookmark-placeholder{color:#7c8a94;}
.icon-preview .bookmark-placeholder{color:#84939a;}
.icon-preview .bookmark-placeholder svg{width:20px;height:20px;}
@media(max-width:700px){
  .bookmark-dock,html[data-theme="dark"] .bookmark-dock{width:100%;max-width:100%;margin-top:13px;}
  .bookmark-track{row-gap:3px;column-gap:2px;}
  .bookmark-item,.folder-trigger{max-width:min(155px,100%);}
}


/* v2.4：隐藏全站可滚动区域的滚动条，不限制鼠标滚轮、触摸与键盘滚动 */
html,body,.home-page,.drawer-body,.engine-menu,.popup-list,.modal{
  scrollbar-width:none!important;           /* Firefox */
  -ms-overflow-style:none;                 /* 旧版 Edge */
}
html::-webkit-scrollbar,body::-webkit-scrollbar,
.home-page::-webkit-scrollbar,.drawer-body::-webkit-scrollbar,
.engine-menu::-webkit-scrollbar,.popup-list::-webkit-scrollbar,
.modal::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}

/* 书签管理 · 清空操作：不抢占主按钮的视觉层级 */
.manage-toolbar .manage-clear{color:#c7524a;border-color:#f3d6d2;background:#fff8f7;}
.manage-toolbar .manage-clear:hover{color:#b83e36;background:#fff0ed;border-color:#eac3bc;transform:none;}
.manage-toolbar .manage-clear:active{transform:none;}
.manage-toolbar .manage-clear:disabled{opacity:.42;cursor:not-allowed;}

/* v2.5 修复：hidden 属性的默认规则此前被 .bookmark-placeholder{display:grid} 覆盖。
   真实 ICO 加载成功时，绝不同时显示占位地球图标。 */
.bookmark-placeholder[hidden], img[hidden], .popup-icon [hidden], .manage-favicon [hidden], .icon-preview [hidden]{display:none!important}

/* 主题使用统一的视觉变量：浅色、深色、跟随系统真正影响所有可操作面板。 */
html[data-theme="light"]{
  color-scheme:light;
  --ui-surface:#ffffff;--ui-text:#24313b;--ui-secondary:#77848e;
  --ui-border:#e9edf0;--ui-soft:#f6f8fa;--ui-hover:#f2f6f7;
  --ui-menu-shadow:0 18px 55px #071c2c38;
}
html[data-theme="dark"]{
  color-scheme:dark;
  --ui-surface:#1d232c;--ui-text:#f1f4f8;--ui-secondary:#a2acb9;
  --ui-border:#343c48;--ui-soft:#252d37;--ui-hover:#303a46;
  --ui-menu-shadow:0 18px 55px #050b14aa;
}

/* 搜索框在浅色为白色，在深色为高对比度的墨黑色。壁纸仍由本地图片/视频独立控制。 */
html[data-theme="light"] .hero .search-bar{background:#fffefa;box-shadow:0 12px 40px #061f2840;border:1px solid #ffffffc2;color:#24313b}
html[data-theme="dark"] .hero .search-bar{background:#202832ed;box-shadow:0 12px 42px #02091177;border:1px solid #5964758f;color:#f6f7f9}
html[data-theme="light"] .hero .search-bar:focus-within{background:#fff}
html[data-theme="dark"] .hero .search-bar:focus-within{background:#1b222cea;box-shadow:0 12px 42px #02091177,0 0 0 3px #ffffff22}
html[data-theme="light"] .hero .search-bar input{color:#27333b}
html[data-theme="dark"] .hero .search-bar input{color:#f6f8fb}
html[data-theme="dark"] .hero .search-bar input::placeholder{color:#9ca6b4}
html[data-theme="dark"] .hero .search-engine{color:#b9c3ce}
html[data-theme="dark"] .hero .search-submit{color:#b5db8a}
html[data-theme="dark"] .hero .engine-menu{background:var(--ui-surface);border-color:var(--ui-border);box-shadow:var(--ui-menu-shadow)}
html[data-theme="dark"] .hero .engine-option{color:var(--ui-text)}
html[data-theme="dark"] .hero .engine-option:hover{background:var(--ui-hover)}
html[data-theme="dark"] .hero .engine-option.selected{color:#a3da67}

/* 现代简洁文件夹弹窗：无花哨渐变、统一留白、圆角与深浅颜色 */
.folder-popup,html[data-theme="dark"] .folder-popup{
  position:fixed;z-index:35;
  width:min(390px,calc(100vw - 24px));max-height:min(64vh,540px);
  padding:0;display:flex;flex-direction:column;
  border-radius:18px;overflow:hidden;
  color:var(--ui-text);background:var(--ui-surface);
  border:1px solid var(--ui-border);box-shadow:var(--ui-menu-shadow);
  backdrop-filter:blur(22px);
}
.folder-popup .popup-head,html[data-theme="dark"] .folder-popup .popup-head{
  flex-shrink:0;display:flex;align-items:center;gap:12px;
  padding:17px 16px;border-bottom:1px solid var(--ui-border);
  font-size:14px;font-weight:500;min-height:73px;
}
.popup-folder-symbol{width:39px;height:39px;border-radius:11px;display:grid;place-items:center;flex-shrink:0;
  background:var(--ui-soft);color:var(--ui-secondary)}
.popup-folder-symbol svg{width:20px;height:20px;stroke-width:1.65}
.popup-folder-meta{display:flex;flex-direction:column;min-width:0;flex:1;gap:5px}
.popup-folder-meta strong{font-size:14px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.popup-folder-meta small{font-size:11px;font-weight:400;color:var(--ui-secondary)}
.folder-popup .popup-actions{gap:2px;flex-shrink:0}
.folder-popup .popup-actions button{
  height:29px;width:29px;padding:0;border:0;border-radius:8px;display:grid;place-items:center;
  color:var(--ui-secondary);background:transparent;transition:none;
}
.folder-popup .popup-actions button svg{width:17px;height:17px;stroke-width:1.8}
.folder-popup .popup-actions button:hover{color:var(--ui-text);background:var(--ui-hover)}
.folder-popup .popup-list{padding:7px 8px 6px;overflow:auto;flex:1;min-height:0}
.folder-popup .popup-bookmark,html[data-theme="dark"] .folder-popup .popup-bookmark{
  min-height:53px;height:auto;border-radius:10px;display:flex;align-items:center;gap:11px;
  padding:8px 10px;color:var(--ui-text);font-size:13px;
  border:0;background:transparent;transition:none;
}
.folder-popup .popup-bookmark:hover,html[data-theme="dark"] .folder-popup .popup-bookmark:hover{
  padding:8px 10px;background:var(--ui-hover);color:var(--ui-text);transform:none;
}
.popup-icon{height:27px;width:27px;flex-shrink:0;display:grid;place-items:center;
  background:var(--ui-soft);border-radius:8px;color:var(--ui-secondary)}
.folder-popup .popup-icon img{width:17px;height:17px;object-fit:contain;border-radius:2px;filter:none}
.popup-icon .bookmark-placeholder{height:17px;width:17px;color:var(--ui-secondary)}
.popup-icon .bookmark-placeholder svg{height:16px;width:16px}
.popup-link-info{display:flex;flex-direction:column;min-width:0;gap:4px;flex:1}
.popup-link-info strong{font-size:13px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.popup-link-info small{font-size:11px;color:var(--ui-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.popup-empty{min-height:164px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:24px;color:var(--ui-secondary)}
.popup-empty>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--ui-soft)}
.popup-empty>span svg{width:20px;height:20px}
.popup-empty strong{font-size:13px;color:var(--ui-text);font-weight:580}
.popup-empty small{font-size:11px;line-height:1.65}
.folder-popup .popup-foot{font-size:10px;line-height:1.5;text-align:center;color:var(--ui-secondary);
  padding:10px 8px;border-top:1px solid var(--ui-border);background:var(--ui-surface)}

/* 抽屉、登录后右上菜单和书签编辑弹窗跟随主题同步换色 */
html[data-theme="dark"] .drawer,html[data-theme="dark"] .modal,
html[data-theme="dark"] .user-menu{background:var(--ui-surface);color:var(--ui-text);border-color:var(--ui-border)}
html[data-theme="dark"] .drawer-head{border-bottom-color:var(--ui-border)}
html[data-theme="dark"] .drawer-head h2,html[data-theme="dark"] .setting-group h3{color:var(--ui-text)}
html[data-theme="dark"] .setting-group p,html[data-theme="dark"] .field-label,
html[data-theme="dark"] .overline,html[data-theme="dark"] .setting-row{color:var(--ui-secondary)}
html[data-theme="dark"] .setting-row,html[data-theme="dark"] .manage-item{border-bottom-color:var(--ui-border)}
html[data-theme="dark"] .drawer select,html[data-theme="dark"] .drawer input[type=text],
html[data-theme="dark"] .modal input,html[data-theme="dark"] .modal select{
  background:var(--ui-soft);color:var(--ui-text);border-color:var(--ui-border)
}
html[data-theme="dark"] .icon-btn,html[data-theme="dark"] .manage-item button,
html[data-theme="dark"] .folder-tab,html[data-theme="dark"] .manage-toolbar button:not(.filled),
html[data-theme="dark"] .reset-btn{background:var(--ui-soft);color:var(--ui-secondary);border-color:var(--ui-border)}
html[data-theme="dark"] .folder-tab.active{background:#334332;color:#caeab2;border-color:#536b4a}
html[data-theme="dark"] .modal-head h3{color:var(--ui-text)}
html[data-theme="dark"] .modal form label{color:var(--ui-secondary)}
html[data-theme="dark"] .modal-extra .icon-preview{border-color:var(--ui-border)}
html[data-theme="dark"] .wall-upload-tile{background:var(--ui-soft);color:#bde18b;border-color:#54664f}
html[data-theme="dark"] .wall-upload-tile span{color:var(--ui-secondary)}
html[data-theme="dark"] .user-menu a:hover,html[data-theme="dark"] .user-menu button:hover{background:var(--ui-hover)}
html[data-theme="dark"] .user-menu button{color:var(--ui-text)}
html[data-theme="dark"] .manage-meta small{color:var(--ui-secondary)}
html[data-theme="dark"] .manage-toolbar .manage-clear{color:#ffaca2!important;background:#422d30!important;border-color:#784347!important}
html[data-theme="dark"] .input-with-action button{background:#334332;color:#c0e7ac}
html[data-theme="dark"] .select-field:focus,html[data-theme="dark"] .modal input:focus{outline-color:#87c56a}
@media(max-width:700px){.folder-popup,html[data-theme="dark"] .folder-popup{width:min(365px,calc(100vw - 22px));border-radius:16px}}

/* v2.7 游客 / MySQL 双模式 */
.guest-entry{display:block;text-align:center;margin-top:18px;color:#5e9e2a;font-size:13px;font-weight:600;text-decoration:none}
.guest-entry:hover{text-decoration:underline}
.mode-link{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:9px 13px;background:#f0f8e8;color:#3c8124;border:1px solid #cfeabf;border-radius:9px;font-size:12px;font-weight:600;text-decoration:none;margin-top:10px}
.mode-button{font:inherit;cursor:pointer}
.mode-secondary{display:block;color:var(--ui-text,#46545a);padding:9px 0;margin-top:7px;border:0;background:transparent;font-size:12px;text-align:left;text-decoration:underline}
html[data-theme="dark"] .mode-link{background:#273b30;border-color:#4f7758;color:#ace397}
html[data-theme="dark"] .mode-secondary{color:#bdcfd8}
