Changeset 0.10.5 (#61)

This commit is contained in:
2026-02-25 00:18:03 +00:00
parent e5ee78c498
commit d2ec55b16d
16 changed files with 1643 additions and 801 deletions

View File

@@ -101,10 +101,8 @@ a:hover { text-decoration: underline; }
}
.sb-brand:hover { background: var(--bg-hover); }
.brand-logo { flex-shrink: 0; width: 18px; height: 18px; display: grid; place-items: center; }
.brand-logo-img { width: 18px; height: 18px; object-fit: contain; border-radius: 3px; transition: opacity var(--transition); }
.brand-collapse { flex-shrink: 0; width: 0; overflow: hidden; color: var(--text-2); opacity: 0; transition: opacity var(--transition); position: absolute; left: 10px; }
.sb-brand:hover .brand-logo-img { opacity: 0; }
.sb-brand:hover .brand-collapse { opacity: 1; }
.brand-logo-img { width: 18px; height: 18px; object-fit: contain; border-radius: 3px; }
.brand-collapse { display: none; }
.brand-text { font-weight: 600; font-size: 14px; }
.sb-btn {
@@ -125,7 +123,6 @@ a:hover { text-decoration: underline; }
.sidebar.collapsed .sidebar-top { padding: 10px 0 8px; align-items: center; }
.sidebar.collapsed .sidebar-bottom { padding: 8px 0; display: flex; flex-direction: column; align-items: center; }
.sidebar.collapsed .sb-brand { justify-content: center; padding: 8px 0; gap: 0; }
.sidebar.collapsed .brand-collapse { left: 50%; transform: translateX(-50%); }
.sidebar.collapsed .sb-btn { justify-content: center; padding: 8px 0; gap: 0; }
.sidebar.collapsed .split-btn-main { justify-content: center; padding: 8px 0; gap: 0; }
.sidebar.collapsed .user-btn { justify-content: center; padding: 6px 0; gap: 0; }
@@ -1215,9 +1212,12 @@ button { font-family: var(--font); cursor: pointer; }
.admin-tab {
padding: 10px 14px; background: none; border: none; color: var(--text-3);
cursor: pointer; font-size: 13px; border-bottom: 2px solid transparent;
white-space: nowrap; flex-shrink: 0;
white-space: nowrap; flex-shrink: 0; transition: color var(--transition);
outline: none;
}
.admin-tab.active { color: var(--accent); border-bottom-color: var(--accent); }
.admin-tab:hover { color: var(--text-2); }
.admin-tab:focus { color: var(--text-3); }
.admin-tab.active, .admin-tab.active:focus { color: var(--accent); border-bottom-color: var(--accent); }
.admin-toolbar { display: flex; align-items: center; gap: 10px; margin-bottom: 1rem; }
.admin-hint { font-size: 12px; color: var(--text-3); }
@@ -1669,6 +1669,59 @@ button { font-family: var(--font); cursor: pointer; }
}
@keyframes pwa-banner-in { from { opacity: 0; transform: translateX(-50%) translateY(20px); } }
/* ── Confirm Dialog ──────────────────────── */
.confirm-overlay {
position: fixed; inset: 0; z-index: 9999;
display: flex; align-items: center; justify-content: center;
background: rgba(0,0,0,0.55);
animation: fade-in 0.12s ease;
}
.confirm-dialog {
background: var(--bg-raised); border: 1px solid var(--border-light);
border-radius: var(--radius-lg); padding: 0;
min-width: 320px; max-width: 440px;
box-shadow: 0 8px 32px rgba(0,0,0,0.5);
animation: confirm-in 0.15s ease;
}
.confirm-header {
padding: 16px 20px 0; font-weight: 600; font-size: 15px; color: var(--text);
}
.confirm-body {
padding: 12px 20px 20px; font-size: 13px; color: var(--text-2);
line-height: 1.5; white-space: pre-wrap;
}
.confirm-footer {
display: flex; justify-content: flex-end; gap: 8px;
padding: 0 20px 16px;
}
@keyframes confirm-in { from { opacity: 0; transform: scale(0.95); } }
@keyframes fade-in { from { opacity: 0; } }
/* ── Popup Menu (shared base) ───────────── */
.popup-menu {
display: none; position: absolute; z-index: 200;
background: var(--bg-raised); border: 1px solid var(--border-light);
border-radius: var(--radius); padding: 4px;
box-shadow: 0 4px 16px rgba(0,0,0,0.4);
min-width: 160px;
}
.popup-menu.open { display: block; }
.popup-menu-item {
display: flex; align-items: center; gap: 10px;
padding: 8px 12px; border-radius: var(--radius);
background: none; border: none; color: var(--text-2);
cursor: pointer; font-size: 13px; width: 100%;
transition: background var(--transition), color var(--transition);
}
.popup-menu-item:hover { background: var(--bg-hover); color: var(--text); }
.popup-menu-item.disabled { opacity: 0.4; pointer-events: none; }
.popup-menu-danger:hover { color: var(--danger); }
.popup-menu-icon { flex-shrink: 0; display: flex; align-items: center; }
.popup-menu-hint { margin-left: auto; font-size: 11px; color: var(--text-3); }
.popup-menu-divider { height: 1px; background: var(--border); margin: 4px 8px; }
/* ── Responsive ──────────────────────────── */
.mobile-menu-btn {