/* Weekly Review 共享样式 - 极客终端风 v2 */
:root{--bg:#0d1117;--card:#161b22;--border:#30363d;--text:#e6edf3;--dim:#8b949e;--green:#3fb950;--blue:#58a6ff;--amber:#d29922;--red:#f85149}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:ui-monospace,'JetBrains Mono',monospace;background:var(--bg);color:var(--text);min-height:100vh}

/* ===== 密码遮罩 ===== */
.overlay{position:fixed;inset:0;background:rgba(13,17,23,.97);display:flex;align-items:center;justify-content:center;z-index:100;backdrop-filter:blur(12px)}
.overlay.hidden{display:none}
.terminal-box{background:var(--card);border:1px solid var(--border);border-radius:12px;max-width:460px;width:90%;overflow:hidden;box-shadow:0 12px 40px rgba(0,0,0,.5);animation:fadeIn .4s ease}
@keyframes fadeIn{from{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}
.terminal-bar{display:flex;gap:.5rem;padding:.55rem .8rem;background:rgba(0,0,0,.3);border-bottom:1px solid var(--border)}
.dot{width:11px;height:11px;border-radius:50%}
.dot.r{background:#ff5f56}.dot.y{background:#ffbd2e}.dot.g{background:#27c93f}
.terminal-body{padding:1.4rem 1.5rem}
.terminal-body .prompt{color:var(--green);margin-bottom:.8rem;font-size:.82rem}
.terminal-body input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.6rem .9rem;color:var(--text);font-family:inherit;font-size:.88rem;outline:none;transition:border-color .3s,box-shadow .3s}
.terminal-body input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(63,185,80,.15)}
.terminal-body .error{color:var(--red);font-size:.78rem;margin-top:.5rem;display:none}
.terminal-body .error.show{display:block;animation:shake .4s ease}
@keyframes shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.cursor-blink{animation:blink 1s step-end infinite}
@keyframes blink{50%{opacity:0}}

/* ===== 汇总页 ===== */
.main-wrap{max-width:900px;margin:0 auto;padding:2rem 1.5rem 4rem}
.page-header{margin-bottom:2rem}
.page-header h1{font-size:1.5rem;color:var(--text);margin-bottom:.3rem}
.page-header .sub{color:var(--dim);font-size:.82rem}
.week-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}

/* ===== 周卡片 - 互动效果 ===== */
.week-card{position:relative;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1.2rem;text-decoration:none;color:var(--text);transition:all .35s cubic-bezier(.4,0,.2,1);overflow:hidden}
.week-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--green),var(--blue));transform:scaleX(0);transition:transform .35s cubic-bezier(.4,0,.2,1);transform-origin:left}
.week-card:hover{border-color:var(--green);transform:translateY(-4px);box-shadow:0 8px 32px rgba(63,185,80,.15),0 2px 8px rgba(0,0,0,.3)}
.week-card:hover::before{transform:scaleX(1)}
.week-card .week-id{font-size:.75rem;color:var(--green);margin-bottom:.4rem;font-weight:700;transition:color .3s}
.week-card:hover .week-id{color:var(--blue)}
.week-card .week-title{font-size:1rem;font-weight:600;margin-bottom:.4rem;transition:transform .3s}
.week-card:hover .week-title{transform:translateX(4px)}
.week-card .week-date{font-size:.72rem;color:var(--dim)}
.week-card .week-summary{font-size:.78rem;color:var(--dim);margin-top:.5rem;line-height:1.5;transition:color .3s}
.week-card:hover .week-summary{color:var(--text)}

/* ===== 详情页内容区 ===== */
.content-wrap{display:none;max-width:900px;margin:0 auto;padding:2rem 1.5rem 4rem}
.content-wrap.show{display:block;animation:fadeIn .4s ease}
.content-wrap h1{font-size:1.4rem;margin-bottom:.3rem}
.content-wrap .meta{color:var(--dim);font-size:.78rem;margin-bottom:1.5rem}
.content-wrap h2{font-size:1rem;color:var(--green);margin:1.5rem 0 .6rem;border-bottom:1px solid var(--border);padding-bottom:.3rem}
.content-wrap ul{list-style:none;padding:0}
.content-wrap li{padding:.4rem .6rem;font-size:.85rem;color:var(--dim);border-bottom:1px solid rgba(48,54,61,.4);transition:all .25s;border-radius:4px}
.content-wrap li:hover{background:rgba(63,185,80,.04);color:var(--text);padding-left:.9rem}
.content-wrap li strong{color:var(--text)}

/* ===== 数据卡片 ===== */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.8rem;margin:1rem 0}
.stat-box{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:.8rem 1rem;text-align:center;transition:all .3s cubic-bezier(.4,0,.2,1)}
.stat-box:hover{transform:translateY(-3px);border-color:var(--green);box-shadow:0 4px 16px rgba(63,185,80,.12)}
.stat-box:hover .stat-num{transform:scale(1.1)}
.stat-num{font-size:1.4rem;font-weight:700;color:var(--green);transition:transform .3s}
.stat-label{font-size:.68rem;color:var(--dim);margin-top:.15rem}

/* ===== 下周看点 ===== */
.content-wrap .next-row{transition:all .25s;border-radius:4px;padding-left:.6rem}
.content-wrap .next-row:hover{background:rgba(88,166,255,.05);padding-left:.9rem}

/* ===== 页脚 ===== */
.footer{text-align:center;padding:2rem;color:var(--dim);font-size:.72rem}
.footer a{color:var(--blue);text-decoration:none;transition:color .2s}
.footer a:hover{color:var(--green)}

/* ===== 滚动条美化 ===== */
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--dim)}

/* ===== 选择文本颜色 ===== */
::selection{background:rgba(63,185,80,.3);color:var(--text)}

/* ===== 热力图 ===== */
.heatmap-section{margin-top:2.5rem;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1.2rem 1.4rem}
.heatmap-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}
.heatmap-title{font-size:.92rem;font-weight:700;color:var(--text)}
.heatmap-total{font-size:.75rem;color:var(--dim)}
.heatmap-wrap{display:flex;gap:.5rem}
.heatmap-dates{display:flex;flex-direction:column;font-family:var(--mono);font-size:.6rem;color:var(--dim);height:105px;justify-content:space-between}
.hm-date-label{height:13px;line-height:13px}
.heatmap-grid{display:flex;gap:3px}
.hm-col{display:flex;flex-direction:column;gap:3px}
.hm-cell{width:13px;height:13px;border-radius:3px;background:var(--bg);transition:transform .15s ease,box-shadow .15s ease}
.hm-cell:hover{transform:scale(1.4);box-shadow:0 0 8px rgba(63,185,80,.5);z-index:2;position:relative}
.hm-l0{background:#161b22}.hm-l1{background:#0e4429}.hm-l2{background:#006d32}.hm-l3{background:#26a641}.hm-l4{background:#39d353}
.heatmap-legend{display:flex;align-items:center;gap:.35rem;margin-top:.8rem;justify-content:flex-end;font-size:.68rem;color:var(--dim)}
.hl-box{width:13px;height:13px;border-radius:3px}
.hl-text{font-family:var(--mono)}
