/* ============================================================
   GEEK TERMINAL THEME —— 覆盖层样式（在 main.css 之后加载）
   配色：Matrix 绿 #00ff41 / 深黑 #0d0208 / 琥珀点缀 #ffb000
   ============================================================ */

:root {
    --term-bg: #0d0208;
    --term-panel: #0f160f;
    --term-green: #00ff41;
    --term-green-dim: #008f11;
    --term-green-dark: #003b00;
    --term-amber: #ffb000;
    --term-text: #b4ffb4;
    --term-text-dim: #5a8f5a;
    --term-border: #1e3a1e;
    --term-font: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', Consolas, 'Courier New', 'PingFang SC', 'Microsoft YaHei', monospace;
    --term-glow: 0 0 6px rgba(0, 255, 65, .45), 0 0 18px rgba(0, 255, 65, .18);
}

/* ---------- 全局 ---------- */
html, body {
    background: var(--term-bg) !important;
    background-image: none !important;
    color: var(--term-text) !important;
    font-family: var(--term-font) !important;
    font-weight: 400 !important;
}

[data-bs-theme=dark] body,
[data-bs-theme=light] body {
    background: var(--term-bg) !important;
    color: var(--term-text) !important;
}

::selection { background: var(--term-green); color: #021503; }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: #060906; }
::-webkit-scrollbar-thumb { background: var(--term-green-dark); border: 2px solid #060906; border-radius: 6px; }
::-webkit-scrollbar-thumb:hover { background: var(--term-green-dim); }

/* ---------- Matrix 数字雨 & CRT 扫描线 ---------- */
#matrix-rain {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    z-index: 0;
    opacity: .22;
    pointer-events: none;
}

.crt-overlay {
    position: fixed;
    inset: 0;
    z-index: 100000;
    pointer-events: none;
    background: repeating-linear-gradient(
        to bottom,
        transparent 0px,
        transparent 2px,
        rgba(0, 0, 0, .18) 3px,
        rgba(0, 0, 0, .18) 4px
    );
    mix-blend-mode: multiply;
    opacity: .5;
}

/* 隐藏旧星空背景（与终端主题冲突） */
.starry-background,
.particles-container {
    display: none !important;
}

/* 注意：只给文档流内的元素加层级，固定定位面板(fixed)保持原样，否则布局会崩 */
.container, .terminal-footer {
    position: relative;
    z-index: 2;
}

/* ---------- 终端窗口头部 ---------- */
.terminal-window {
    max-width: 860px;
    margin: 1.2rem auto 2.2rem !important;
    padding: 0 !important;
    text-align: left !important;
    border: 1px solid var(--term-border);
    border-radius: 10px;
    background: rgba(10, 15, 10, .92);
    box-shadow: var(--term-glow), inset 0 0 40px rgba(0, 60, 0, .25);
    overflow: hidden;
}

.terminal-titlebar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 14px;
    background: linear-gradient(180deg, #101a10, #0a120a);
    border-bottom: 1px solid var(--term-border);
}

.term-btn { width: 12px; height: 12px; border-radius: 50%; flex: none; }
.term-red    { background: #ff5f56; box-shadow: 0 0 6px rgba(255,95,86,.7); }
.term-yellow { background: #ffbd2e; box-shadow: 0 0 6px rgba(255,189,46,.7); }
.term-green  { background: #27c93f; box-shadow: 0 0 6px rgba(39,201,63,.7); }

.terminal-title {
    margin-left: 10px;
    font-size: .8rem;
    color: var(--term-text-dim);
    letter-spacing: .08em;
    user-select: none;
}

.terminal-body { padding: 18px 22px 20px; }

.term-line {
    font-size: 1.05rem;
    line-height: 2;
    word-break: break-all;
}

.term-prompt { color: var(--term-green-dim); margin-right: 6px; }
.term-path   { color: #4da6ff; }

#typed-title {
    color: var(--term-green);
    font-size: clamp(1.6rem, 4.5vw, 2.6rem);
    font-weight: 700;
    text-shadow: 0 0 8px rgba(0, 255, 65, .65), 0 0 26px rgba(0, 255, 65, .3);
    letter-spacing: .04em;
}

.term-sub {
    color: var(--term-text-dim);
    font-size: .85rem;
}
.term-sub .ok { color: var(--term-green); }
.term-sub .warn { color: var(--term-amber); }

.cursor {
    display: inline-block;
    color: var(--term-green);
    animation: blink 1s steps(1) infinite;
    text-shadow: 0 0 8px rgba(0, 255, 65, .8);
}
@keyframes blink { 50% { opacity: 0; } }

.terminal-window h1 { display: none !important; }

/* ---------- 公告区：cat 输出风格 ---------- */
.announcement-section {
    background: rgba(10, 15, 10, .9) !important;
    border: 1px solid var(--term-border) !important;
    border-radius: 8px !important;
    box-shadow: inset 0 0 30px rgba(0, 60, 0, .2) !important;
}

.announcement-header h5 {
    color: var(--term-green) !important;
    font-family: var(--term-font) !important;
}
.announcement-header h5 i { color: var(--term-amber) !important; }
.announcement-header h5::before {
    content: '$ cat announcement.txt';
    display: block;
    font-size: .72rem;
    color: var(--term-text-dim);
    margin-bottom: 4px;
}

.announcement-content-display,
.announcement-text-container {
    color: var(--term-text) !important;
    font-family: var(--term-font) !important;
    font-size: .9rem !important;
}

.announcement-read-more {
    color: var(--term-green) !important;
    border-color: var(--term-green-dim) !important;
}
.announcement-read-more:hover {
    background: var(--term-green) !important;
    color: #021503 !important;
    box-shadow: var(--term-glow);
}

/* ---------- 书签卡片：终端条目 ---------- */
.bookmark-card {
    background: rgba(13, 20, 13, .92) !important;
    border: 1px solid var(--term-border) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    transition: border-color .2s ease, box-shadow .2s ease, transform .15s ease !important;
    position: relative;
    overflow: hidden;
}

.bookmark-card::before {
    content: '>';
    position: absolute;
    top: 8px;
    left: 10px;
    color: var(--term-green-dark);
    font-family: var(--term-font);
    font-size: .8rem;
    transition: color .2s ease, text-shadow .2s ease;
}

.bookmark-card:hover {
    border-color: var(--term-green) !important;
    box-shadow: var(--term-glow) !important;
    transform: translateY(-3px) !important;
}

/* 原主题卡片底部悬停条是蓝色的，改成终端绿 */
.bookmark-card::after {
    background: var(--term-green) !important;
}
.bookmark-card:hover::before {
    color: var(--term-green);
    text-shadow: 0 0 8px rgba(0, 255, 65, .8);
}

.bookmark-link { text-decoration: none !important; }

.bookmark-card .card-title {
    color: var(--term-green) !important;
    font-family: var(--term-font) !important;
    font-weight: 600 !important;
    text-shadow: none !important;
    transition: text-shadow .2s ease;
}
.bookmark-card:hover .card-title {
    text-shadow: 0 0 10px rgba(0, 255, 65, .7);
}

.bookmark-card .card-text {
    color: var(--term-text-dim) !important;
    font-family: var(--term-font) !important;
    font-size: .78rem !important;
}

.intranet-indicator {
    color: var(--term-amber) !important;
    font-family: var(--term-font) !important;
}
.intranet-indicator::before { content: '['; }
.intranet-indicator::after  { content: ']'; }

.custom-icon, .bookmark-icon {
    filter: saturate(1.1);
    transition: transform .2s ease, filter .2s ease;
}
.bookmark-card:hover .custom-icon,
.bookmark-card:hover .bookmark-icon {
    transform: scale(1.12);
    filter: drop-shadow(0 0 8px rgba(0, 255, 65, .55));
}
.bookmark-icon { color: var(--term-green-dim) !important; }

.bookmark-actions .btn,
.edit-btn, .delete-btn {
    background: rgba(0, 40, 0, .6) !important;
    border: 1px solid var(--term-border) !important;
    color: var(--term-text-dim) !important;
}
.edit-btn:hover { color: var(--term-green) !important; border-color: var(--term-green) !important; box-shadow: var(--term-glow); }
.delete-btn:hover { color: #ff5f56 !important; border-color: #ff5f56 !important; box-shadow: 0 0 8px rgba(255, 95, 86, .5); }



/* ---------- 按钮统一终端化 ---------- */
.btn {
    font-family: var(--term-font) !important;
    border-radius: 6px !important;
    letter-spacing: .03em;
}

.btn-primary, .btn-success {
    background: rgba(0, 60, 0, .5) !important;
    border-color: var(--term-green-dim) !important;
    color: var(--term-green) !important;
}
.btn-primary:hover, .btn-primary:focus,
.btn-success:hover, .btn-success:focus {
    background: var(--term-green) !important;
    border-color: var(--term-green) !important;
    color: #021503 !important;
    box-shadow: var(--term-glow) !important;
}

.btn-secondary {
    background: rgba(30, 40, 30, .6) !important;
    border-color: var(--term-border) !important;
    color: var(--term-text) !important;
}
.btn-secondary:hover {
    border-color: var(--term-green-dim) !important;
    color: var(--term-green) !important;
}

.btn-danger {
    background: rgba(60, 0, 0, .5) !important;
    border-color: #7a2a24 !important;
    color: #ff8f86 !important;
}
.btn-danger:hover { background: #ff5f56 !important; color: #200503 !important; }

.btn-outline-info, .btn-outline-secondary {
    color: var(--term-green) !important;
    border-color: var(--term-green-dim) !important;
}
.btn-outline-info:hover, .btn-outline-secondary:hover {
    background: var(--term-green) !important;
    color: #021503 !important;
}

/* ---------- 侧边控制 & 主题切换 ---------- */
.side-controls .btn, .theme-toggle {
    background: rgba(10, 20, 10, .9) !important;
    border: 1px solid var(--term-border) !important;
    color: var(--term-green) !important;
    box-shadow: none !important;
}
.side-controls .btn:hover, .theme-toggle:hover {
    border-color: var(--term-green) !important;
    box-shadow: var(--term-glow) !important;
}

/* ---------- 时间/格言信息区 ---------- */
.info-section, .mobile-info-section {
    background: rgba(10, 15, 10, .88) !important;
    border: 1px solid var(--term-border) !important;
    border-radius: 8px !important;
    font-family: var(--term-font) !important;
}

.time-display {
    color: var(--term-green) !important;
    font-family: var(--term-font) !important;
    text-shadow: 0 0 10px rgba(0, 255, 65, .5) !important;
    background: none !important;
    -webkit-text-fill-color: var(--term-green) !important;
}
.time-display::before { content: '[ '; color: var(--term-text-dim); }
.time-display::after  { content: ' ]'; color: var(--term-text-dim); }

.date-display { color: var(--term-text-dim) !important; font-family: var(--term-font) !important; }
.quote-text   { color: var(--term-text) !important; font-family: var(--term-font) !important; }
.quote-text::before { content: '# '; color: var(--term-green-dim); }
.quote-author { color: var(--term-text-dim) !important; }
.quote-author::before { content: '-- '; }

/* ---------- 排序模式 ---------- */
.sort-controls .alert-info,
.alert-info {
    background: rgba(0, 40, 0, .55) !important;
    border: 1px solid var(--term-green-dark) !important;
    color: var(--term-green) !important;

/* ---------- 模态框终端化 ---------- */
.modal-content {
    background: #0a120a !important;
    border: 1px solid var(--term-green-dark) !important;
    border-radius: 10px !important;
    box-shadow: var(--term-glow) !important;
    color: var(--term-text) !important;
    font-family: var(--term-font) !important;
}

.modal-header {
    border-bottom: 1px solid var(--term-border) !important;
    background: linear-gradient(180deg, #101a10, #0a120a);
}
.modal-title { color: var(--term-green) !important; font-family: var(--term-font) !important; }
.modal-title::before { content: '$ '; color: var(--term-text-dim); }
.modal-footer { border-top: 1px solid var(--term-border) !important; }
.btn-close { filter: invert(70%) sepia(60%) saturate(500%) hue-rotate(60deg) !important; }

.form-label, .form-check-label, .modal-body p, .text-muted {
    color: var(--term-text) !important;
    font-family: var(--term-font) !important;
}
.modal-body .text-muted { color: var(--term-text-dim) !important; }

.form-control, .form-control:focus {
    background: #060d06 !important;
    border: 1px solid var(--term-border) !important;
    color: var(--term-green) !important;
    font-family: var(--term-font) !important;
    box-shadow: none !important;
}
.form-control:focus {
    border-color: var(--term-green) !important;
    box-shadow: 0 0 8px rgba(0, 255, 65, .35) !important;
}
.form-control::placeholder { color: var(--term-green-dark) !important; }

.form-check-input {
    background-color: #060d06 !important;
    border-color: var(--term-green-dark) !important;
}
.form-check-input:checked {
    background-color: var(--term-green) !important;
    border-color: var(--term-green) !important;
}

/* ---------- 闪现消息 ---------- */
.flash-messages .alert {
    background: rgba(0, 40, 0, .7) !important;
    border: 1px solid var(--term-green-dim) !important;
    color: var(--term-green) !important;
    font-family: var(--term-font) !important;
}

/* ---------- 空状态 ---------- */
.empty-state { color: var(--term-text-dim) !important; font-family: var(--term-font) !important; }
.empty-state i { color: var(--term-green-dark) !important; }

/* ---------- 页脚状态栏 ---------- */
.terminal-footer {
    max-width: 860px;
    margin: 2.5rem auto 1rem;
    padding: 10px 18px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 22px;
    justify-content: center;
    border: 1px solid var(--term-border);
    border-radius: 8px;
    background: rgba(8, 12, 8, .9);
    font-family: var(--term-font);
    font-size: .78rem;
    color: var(--term-text-dim);
    user-select: none;
}
.terminal-footer .st-ok   { color: var(--term-green); }
.terminal-footer .st-warn { color: var(--term-amber); }

/* ---------- 移动端 ---------- */
.mobile-nav-bar {
    background: rgba(8, 12, 8, .95) !important;
    border-top: 1px solid var(--term-border) !important;
    backdrop-filter: blur(4px);
}

.action-menu-style {
    background: #0a120a !important;
    border: 1px solid var(--term-green-dark);
    box-shadow: var(--term-glow);
}

.long-press-indicator { border-color: var(--term-green) !important; }

@media (max-width: 768px) {
    #matrix-rain { opacity: .14; }
    .crt-overlay { opacity: .35; }
    .terminal-window { margin: .8rem .4rem 1.6rem !important; }
}

@media (prefers-reduced-motion: reduce) {
    .cursor { animation: none; }
    .bookmark-card, .custom-icon { transition: none !important; }
}

    font-family: var(--term-font) !important;
}

body.sort-mode .bookmark-card {
    border-style: dashed !important;
    border-color: var(--term-amber) !important;
}

/* ---------- 第二轮细节修复 ---------- */
/* 时间显示不换行（防止 ] 掉到下一行） */
.time-display { white-space: nowrap; }

/* 格言框左侧竖线：蓝改绿 */
.quote-container { border-left-color: var(--term-green-dark) !important; }
.quote-text { font-family: var(--term-font) !important; }
.quote-author { font-family: var(--term-font) !important; }

/* 公告内容盒终端化 */
.announcement-text-container {
    background: #060d06 !important;
    border: 1px solid var(--term-border) !important;
    border-radius: 6px !important;
}

/* 侧边圆形按钮提亮一点，方便找到 */
.side-controls .btn {
    border-color: var(--term-green-dim) !important;
    box-shadow: 0 0 8px rgba(0, 255, 65, .25) !important;
}

