/* ============ 核心应用样式 ============ */
.fb-btn {
  width:28px; height:24px; border-radius:6px; font-size:16px; line-height:1; color:var(--text);
  display:inline-flex; align-items:center; justify-content:center;
}
.fb-btn:hover { background:var(--hover); }
.fb-btn:disabled { opacity:.35; }

/* ---- 访达 ---- */
.finder .fb-toolbar {
  display:flex; align-items:center; gap:8px; padding:8px 12px;
  border-bottom:.5px solid var(--separator); flex:none; background:var(--window-bg);
}
.finder .fb-crumb { flex:1; display:flex; align-items:center; gap:2px; overflow:hidden; }
.fb-crumb-item { padding:3px 7px; border-radius:5px; font-size:13px; color:var(--text2); white-space:nowrap; }
.fb-crumb-item:hover { background:var(--hover); }
.fb-crumb-item.cur { color:var(--text); font-weight:600; }
.fb-crumb-sep { color:var(--text3); font-size:11px; }
.fb-sort { padding:3px 6px; font-size:12px; }
.fb-search { width:130px; padding:3px 9px; font-size:12px; }
.fb-main { flex:1; display:flex; min-height:0; }
.fb-sidebar {
  width:170px; flex:none; overflow-y:auto; padding:8px 6px;
  background:var(--sidebar-bg); border-right:.5px solid var(--separator);
}
.fb-side-title { font-size:11px; font-weight:700; color:var(--text2); padding:8px 8px 3px; }
.fb-side-item { display:flex; align-items:center; gap:7px; padding:4px 8px; border-radius:6px; font-size:13px; cursor:default; }
.fb-side-item:hover { background:var(--hover); }
.fb-side-item.sel { background:var(--selection); }
.fb-side-ico { width:18px; text-align:center; font-size:13px; }
.fb-content { flex:1; overflow-y:auto; outline:none; padding:10px; }
.fb-content.icon-view { display:grid; grid-template-columns:repeat(auto-fill, 92px); gap:8px 4px; align-content:start; justify-content:space-evenly; }
.fb-content.list-view { display:flex; flex-direction:column; gap:1px; padding:6px; }
.fb-item { display:flex; align-items:center; border-radius:8px; cursor:default; }
.icon-view .fb-item { flex-direction:column; gap:5px; padding:8px 2px; width:92px; }
.icon-view .fb-item .fi-icon { width:56px; height:56px; object-fit:contain; }
.icon-view .fi-name { font-size:12px; text-align:center; line-height:1.25; max-width:88px; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; word-break:break-all; padding:0 3px; border-radius:4px; }
.list-view .fb-item { gap:10px; padding:5px 10px; }
.list-view .fb-item .fi-icon { width:20px; height:20px; object-fit:contain; }
.list-view .fi-name { flex:1; font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.list-view .fi-col { width:110px; flex:none; font-size:12px; color:var(--text2); }
.fb-item.sel { background:var(--selection); }
.fb-item.drop-hint { outline:2px dashed var(--accent); outline-offset:-2px; }
.fi-rename { font-size:12px; padding:2px 5px; width:90px; text-align:center; }
.list-view .fi-rename { text-align:left; width:200px; }

/* ---- 终端 ---- */
.term-body { background:rgba(20,22,28,.92); backdrop-filter:var(--glass-blur); font-family:SFMono-Regular, Menlo, Monaco, "Courier New", monospace; }
.term-out { flex:1; overflow-y:auto; padding:10px 12px; color:#e8e8ea; font-size:12.5px; line-height:1.5; -webkit-user-select:text; user-select:text; }
.term-line { white-space:pre-wrap; word-break:break-all; }
.term-err { color:#ff6b63; }
.term-dim { color:#8b8f98; }
.term-echo { color:#9be29b; }
.term-input-row { display:flex; align-items:center; padding:0 12px 10px; }
.term-prompt { color:#9be29b; font-size:12.5px; white-space:pre; }
.term-input { flex:1; background:transparent; border:none; outline:none; color:#e8e8ea; font-family:inherit; font-size:12.5px; caret-color:#9be29b; }

/* ---- 文本编辑 ---- */
.te-body { background:var(--content-bg); }
.te-area {
  flex:1; border:none; outline:none; resize:none; padding:16px 20px;
  background:transparent; color:var(--text); font-size:14px; line-height:1.6;
  font-family:-apple-system, "PingFang SC", sans-serif;
}

/* ---- 备忘录 ---- */
.notes-body { display:flex; flex-direction:row; }
.notes-side { width:230px; flex:none; display:flex; flex-direction:column; border-right:.5px solid var(--separator); background:var(--sidebar-bg); }
.notes-side-bar { display:flex; gap:6px; padding:9px; align-items:center; border-bottom:.5px solid var(--separator); }
.notes-search { flex:1; min-width:0; padding:4px 9px; font-size:12px; }
.notes-list { flex:1; overflow-y:auto; padding:6px; }
.note-row { padding:8px 10px; border-radius:8px; cursor:default; }
.note-row:hover { background:var(--hover); }
.note-row.sel { background:var(--selection); }
.note-title { font-size:13px; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.note-sub { font-size:11.5px; color:var(--text2); margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.notes-main { flex:1; display:flex; flex-direction:column; }
.notes-date { text-align:center; font-size:11.5px; color:var(--text2); padding:10px 0 4px; flex:none; }
.notes-editor { flex:1; border:none; outline:none; resize:none; padding:6px 22px 18px; background:transparent; color:var(--text); font-size:14px; line-height:1.65; }

/* ---- 计算器 ---- */
.calc-body { background:rgba(28,28,30,.92); backdrop-filter:var(--glass-blur); padding:10px; display:flex; flex-direction:column; gap:8px; outline:none; }
.calc-disp {
  flex:none; height:76px; display:flex; align-items:flex-end; justify-content:flex-end;
  color:#fff; font-size:54px; font-weight:300; padding:0 8px; overflow:hidden;
  font-variant-numeric:tabular-nums;
}
.calc-grid { flex:1; display:grid; grid-template-columns:repeat(4, 1fr); gap:8px; }
.calc-key {
  border-radius:999px; background:rgba(88,88,92,.9); color:#fff; font-size:19px;
  display:flex; align-items:center; justify-content:center; min-height:0; transition:filter .1s;
}
.calc-key:hover { filter:brightness(1.25); }
.calc-key:active { filter:brightness(1.55); }
.calc-key.fn { background:rgba(212,212,216,.95); color:#111; font-size:16px; }
.calc-key.op { background:#ff9f0a; font-size:22px; }
.calc-key.zero { grid-column:span 2; border-radius:999px; justify-content:flex-start; padding-left:24px; }

/* ---- 日历 ---- */
.cal-body { display:flex; flex-direction:column; }
.cal-head { display:flex; align-items:center; justify-content:space-between; padding:10px 14px 6px; flex:none; }
.cal-title { font-size:19px; font-weight:700; }
.cal-head-btns { display:flex; gap:6px; align-items:center; }
.cal-week { display:grid; grid-template-columns:repeat(7, 1fr); padding:4px 12px; flex:none; }
.cal-week span { text-align:center; font-size:11px; font-weight:700; color:var(--text2); padding:3px 0; }
.cal-grid { flex:1; display:grid; grid-template-columns:repeat(7, 1fr); grid-auto-rows:1fr; padding:0 12px 8px; min-height:0; }
.cal-cell {
  border-top:.5px solid var(--separator); padding:4px; cursor:default; position:relative;
  display:flex; flex-direction:column; align-items:center; gap:2px; min-height:44px;
}
.cal-cell:hover { background:var(--hover); }
.cal-cell.sel { background:var(--selection); }
.cal-num { font-size:12.5px; width:22px; height:22px; display:flex; align-items:center; justify-content:center; border-radius:50%; }
.cal-cell.other .cal-num { color:var(--text3); }
.cal-cell.today .cal-num { background:var(--danger); color:#fff; font-weight:700; }
.cal-dots { display:flex; gap:3px; }
.cal-dot { width:5px; height:5px; border-radius:50%; background:var(--accent); }
.cal-detail { flex:none; border-top:.5px solid var(--separator); padding:10px 14px; max-height:170px; overflow-y:auto; background:var(--window-bg); }
.cal-detail-title { font-size:13.5px; font-weight:700; margin-bottom:8px; }
.cal-no-events { color:var(--text2); font-size:12.5px; padding:6px 0; }
.cal-events { display:flex; flex-direction:column; gap:4px; margin-bottom:10px; }
.cal-event { display:flex; align-items:center; gap:8px; padding:5px 8px; border-radius:7px; background:var(--card-bg); border:.5px solid var(--card-border); }
.cal-event-dot { width:8px; height:8px; border-radius:50%; background:var(--accent); flex:none; }
.cal-event-time { font-size:12px; color:var(--text2); width:52px; flex:none; }
.cal-event-title { flex:1; font-size:13px; }
.cal-event-del { color:var(--text2); font-size:12px; padding:2px 6px; border-radius:5px; }
.cal-event-del:hover { background:var(--hover); color:var(--danger); }
.cal-add { display:flex; gap:8px; align-items:center; }
