/* v1.2 极简桌面：保留功能，收起永久侧栏，操作按需出现 */
.app .sidebar {
  position:fixed; top:0; left:0; width:min(298px,88vw); height:100dvh; min-height:0;
  display:flex; flex-direction:column; align-items:stretch;
  padding:24px 17px 20px; z-index:40;
  background:rgba(17,31,53,.91); border-right:1px solid rgba(255,255,255,.22);
  box-shadow:15px 0 45px rgba(1,10,25,.27);
  backdrop-filter:blur(32px); -webkit-backdrop-filter:blur(32px);
  transform:translateX(-105%); visibility:hidden;
  transition:transform .25s ease,visibility .25s;
}
.app .sidebar.mobile-open {transform:translateX(0);visibility:visible}
.app .sidebar .brand {justify-content:flex-start;gap:11px;padding:0 4px 20px}
.app .sidebar .brand > div:nth-child(2){display:block}
.app .sidebar .brand strong {font-size:15px;color:#fff}
.app .sidebar .brand small{color:rgba(245,248,255,.62)}
.app .sidebar .side-caption{display:block;padding:10px 15px;color:rgba(255,255,255,.55)}
.app .sidebar .group-nav{display:flex;flex-direction:column;align-items:stretch;width:100%;gap:6px;max-height:none;overflow-y:auto;min-height:0;scrollbar-width:thin}
.app .sidebar .group-row{
  width:100%;height:49px;min-height:49px;padding:0 14px;justify-content:flex-start;
  gap:13px;flex:none;border-radius:14px;font-size:13px;
}
.app .sidebar .group-row .group-icon{width:25px;font-size:19px}
.app .sidebar .group-row .group-name,.app .sidebar .group-row .count{display:block}
.app .sidebar .group-row .group-name{flex:1}
.app .sidebar .group-row .count{font-size:11px}
.app .sidebar .mobile-close{display:block;margin-left:auto;font-size:27px}
.drawer-hint {margin-top:auto;padding:17px 9px 4px;font-size:11px;color:rgba(255,255,255,.65);line-height:1.7}
.app .mobile-scrim:not([hidden]) {display:block;position:fixed;inset:0;z-index:39;background:rgba(1,7,20,.54);backdrop-filter:blur(3px)}
.app .main{width:100%;flex:1}
.app .topbar {height:68px;display:flex;justify-content:space-between;align-items:center;padding:12px 26px 0}
.app .top-left {display:flex;margin-right:auto}
.app .mobile-menu {
  display:grid;place-items:center;width:41px;height:41px;
  font-size:20px;line-height:1;border-radius:13px;
  color:#fff;background:rgba(15,27,50,.22);border:1px solid rgba(255,255,255,.14)
}
.app .top-actions {display:flex;gap:0}
.app #settingsButton {font-size:22px;width:41px;height:41px;display:grid;place-items:center}
.app .content{width:min(1150px,calc(100% - 62px));display:flex;flex-direction:column}
.app .hero{order:0;padding:3px 0 29px}
.app .links-section{order:1;padding:11px 0 14px}
.app .widgets{order:2;margin:30px 0 45px}
.app .section-toolbar{margin-bottom:13px}
.app .section-title .manage-hint {
  display:block;margin:6px 0 0;font-size:10px;letter-spacing:.1px;
  color:rgba(255,255,255,.7);text-shadow:0 1px 5px #001a;
}
.app .toolbar-actions{display:flex;gap:6px;align-items:center}
.app .toolbar-actions input {
  width:min(240px,43vw);height:34px;border-radius:11px;
  background:rgba(20,39,63,.56);color:white;font-size:12px;
}
.app .toolbar-actions input[hidden]{display:none!important}
.app .local-search {width:36px;height:36px;display:grid;place-items:center;padding:0;font-size:22px;line-height:1}
.app .local-search[aria-expanded=true]{background:rgba(255,255,255,.22)}
.app .tiles{row-gap:13px}
.app .tile-menu{display:none!important}
.app .tile-link{touch-action:manipulation}
.app .tile:focus-within{background:rgba(255,255,255,.12)}
.link-context-menu {
  position:fixed;z-index:85;min-width:198px;max-width:calc(100vw - 20px);
  background:rgba(22,36,60,.96);border:1px solid rgba(255,255,255,.2);
  color:#f7faff;border-radius:16px;padding:7px;
  box-shadow:0 18px 46px rgba(0,8,22,.38);
  backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px)
}
.link-context-menu[hidden]{display:none!important}
.link-context-menu button{
  display:block;width:100%;border:0;border-radius:10px;background:transparent;
  color:inherit;text-align:left;font-size:13px;line-height:1.3;
  padding:11px 13px;cursor:pointer;
}
.link-context-menu button:hover,.link-context-menu button:focus-visible{background:rgba(255,255,255,.13);outline:none}
.link-context-menu .context-danger{color:#ffb5b5}
.setting-actions-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.setting-actions-row .mode-switch{min-width:115px}
.setting-actions-row .mode-switch.active{background:#8298ff70;border-color:#c5d0ff}
@media(max-width:850px) {
  .app .content{width:calc(100% - 38px)}
  .app .topbar{height:60px;padding:9px 20px 0}
  .app .widgets{margin-top:22px}
}
@media(max-width:620px) {
  .app .topbar{height:57px;padding:8px 15px 0}
  .app .content{width:calc(100% - 28px)}
  .app .hero{padding:8px 0 26px}
  .app .links-section{padding:0 0 12px}
  .app .section-toolbar{gap:6px;flex-direction:row;align-items:center}
  .app .section-title h2{font-size:12px}
  .app .section-title .manage-hint{font-size:9px}
  .app .toolbar-actions{width:auto;flex-shrink:0}
  .app .toolbar-actions input{width:125px}
  .app .widgets{order:2;margin:22px 0 32px}
  .app .tile{height:102px}
}
@media(max-width:390px){
  .app .toolbar-actions input{width:105px}
}
@media(prefers-reduced-motion:reduce){
  .app .sidebar{transition:none}
}

/* v1.3：数据恢复横幅和分类编辑弹窗 */
.storage-recovery{
  position:fixed;z-index:95;top:max(12px,env(safe-area-inset-top));
  left:50%;transform:translateX(-50%);
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  width:min(860px,calc(100vw - 24px));padding:17px 20px;
  background:rgba(50,31,39,.97);color:#fff;border:1px solid rgba(255,188,170,.6);
  border-radius:17px;box-shadow:0 20px 48px rgba(0,0,0,.44);
}
.storage-recovery[hidden]{display:none!important}
.storage-recovery strong{display:block;font-size:14px}
.storage-recovery p{margin:7px 0 0;font-size:12px;line-height:1.65;color:#ffe1d9}
.recovery-actions{display:flex;flex:none;gap:8px}
.recovery-actions button{padding:10px 12px;border-radius:10px;border:1px solid #ffffff65;color:#fff;background:#ffffff22;font-size:12px;white-space:nowrap}
.recovery-actions button:first-child{background:#fff;color:#402b32}
.group-dialog .dialog-inner{min-width:min(420px,calc(100vw - 44px))}
@media(max-width:620px){
  .storage-recovery{flex-direction:column;align-items:stretch;padding:15px}
  .recovery-actions{justify-content:stretch}
  .recovery-actions button{flex:1;min-width:0;white-space:normal}
}

/* v1.4 排序模式：显式区分普通访问与编辑交互 */
.app.sorting .tile {cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.app.sorting .tile-link {cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.app.sorting .tile:active {cursor:grabbing}
.app.sorting .tile.touch-sorting{opacity:.58;transform:scale(.97)}
.app.sorting .tile.drop-target{
  background:rgba(160,191,255,.23);
  border:1px dashed rgba(230,240,255,.89);
  transform:scale(1.035);
}
.app.sorting .tile-add{opacity:.65;cursor:pointer}
@media(hover:none){
  .app.sorting .tile{min-height:100px}
}

/* v1.5 原生网站文件夹及管理 */
.tile-folder{position:relative;cursor:pointer}
.tile-folder .folder-icon{
  background:linear-gradient(145deg,rgba(100,153,255,.95),rgba(130,112,238,.94));
  box-shadow:0 8px 23px rgba(16,36,92,.29);
  font-size:31px;
}
.tile-folder .folder-count{
  position:absolute;right:2px;top:4px;padding:2px 5px;border-radius:7px;
  font-size:9px;color:#fff;background:rgba(8,20,41,.62);
}
.tile-add-folder .tile-icon{background:rgba(140,165,255,.15);border:1px dashed rgba(255,255,255,.5)}
.app.sorting .tile-folder{opacity:.75;touch-action:auto;cursor:pointer}
.folder-dialog{max-width:min(580px,calc(100vw - 22px))}
.folder-inner{padding:25px;display:flex;flex-direction:column;gap:13px}
.folder-inner .dialog-head{margin-bottom:0}
.folder-subtitle{font-size:12px;color:#b9c9e4;margin:0}
.folder-contents{max-height:min(53vh,440px);min-height:85px;overflow:auto;display:flex;flex-direction:column;gap:6px}
.folder-empty{font-size:12px;color:rgba(228,237,255,.7);line-height:1.6}
.folder-entry{
  min-height:57px;display:flex;gap:8px;align-items:center;justify-content:space-between;
  padding:6px 9px;border-radius:13px;background:rgba(255,255,255,.065);
}
.folder-entry-link{display:flex;align-items:center;gap:11px;min-width:0;flex:1;text-decoration:none;color:#f8faff}
.folder-entry-icon{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:11px;background:rgba(110,147,230,.4);font-size:18px}
.folder-entry-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
.folder-entry-actions{display:flex;gap:2px;flex:none}
.folder-entry-actions button{
  width:32px;height:32px;display:grid;place-items:center;padding:0;
  color:#eaf0ff;background:transparent;border:0;border-radius:9px;
}
.folder-entry-actions button:hover,.folder-entry-actions button:focus-visible{background:rgba(255,255,255,.16)}
.folder-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-top:8px}
#folderManager .manage-row{gap:11px}
#folderManager .manage-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#folderManager .manage-row button{flex:none}
@media(max-width:620px){
 .folder-inner{padding:19px}
 .folder-entry{padding:6px 4px}
 .folder-entry-actions button{width:29px;height:34px}
 .tile-folder .folder-count{font-size:8px}
}
