:root{--bg:#0f1115;--card:#181b22;--card-hover:#1f232c;--border:#272b34;--text:#e8eaed;--muted:#9aa0aa;--accent:#f5d442;--accent-dim:#6b6024}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Apple SD Gothic Neo,Noto Sans KR,sans-serif}a{color:inherit}.wrap{max-width:680px;margin:0 auto;padding:20px 16px 60px}.header{justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.header h1{letter-spacing:-.02em;margin:0;font-size:22px}.stamps{text-align:right;flex-direction:column;align-items:flex-end;gap:1px;display:flex}.updated,.checked{color:var(--muted);font-size:12px}.checked{opacity:.7}.tabs{gap:6px;margin:18px 0 16px;display:flex}.tab{text-align:center;background:var(--card);border:1px solid var(--border);color:var(--muted);cursor:pointer;border-radius:10px;flex:1;padding:10px 0;font-size:14px;font-weight:600}.tab.active{color:#0f1115;background:var(--accent);border-color:var(--accent)}.day{background:var(--card);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;padding:14px 16px}.day-head{align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.day-date{font-size:15px;font-weight:700}.day-dow{color:var(--muted);font-size:12px}.day.today{border-color:var(--accent)}.day.today .day-date{color:var(--accent)}.badge-today{color:#0f1115;background:var(--accent);border-radius:6px;padding:1px 6px;font-size:11px;font-weight:700}.empty{color:var(--muted);font-size:14px}.item{border-top:1px solid var(--border);gap:10px;padding:7px 0;display:flex}.item:first-of-type{border-top:none}.item-time{font-variant-numeric:tabular-nums;color:var(--accent);flex:0 0 52px;font-size:14px;font-weight:700}.item-body{font-size:14px;line-height:1.4}.item-emoji{margin-right:4px}.tweet{background:var(--card);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;padding:14px 16px}.tweet-meta{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;display:flex}.tweet-text{white-space:pre-wrap;font-size:14px;line-height:1.5}.tweet-imgs{grid-template-columns:repeat(2,1fr);gap:6px;margin-top:10px;display:grid}.tweet-imgs.one{grid-template-columns:1fr}.tweet-imgs img{border-radius:8px;width:100%;display:block}.tweet-link{color:var(--accent);font-size:12px;text-decoration:none}.cal-head{justify-content:center;align-items:center;gap:18px;margin-bottom:14px;display:flex}.cal-title{text-align:center;min-width:110px;font-size:16px;font-weight:700}.cal-nav{background:var(--card);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:8px;width:34px;height:34px;font-size:13px}.cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-dow{text-align:center;color:var(--muted);padding:4px 0;font-size:12px;font-weight:600}.cal-dow.sun{color:#ff7b7b}.cal-dow.sat{color:#7ba8ff}.cal-cell{aspect-ratio:1;background:var(--card);border:1px solid var(--border);color:var(--text);cursor:pointer;font-variant-numeric:tabular-nums;border-radius:8px;justify-content:center;align-items:center;padding:0;font-size:14px;display:flex;position:relative}.cal-cell.blank{cursor:default;background:0 0;border:none}.cal-cell.sun .cal-num{color:#ff7b7b}.cal-cell.sat .cal-num{color:#7ba8ff}.cal-cell.today{border-color:var(--accent)}.cal-cell.today .cal-num{color:var(--accent);font-weight:700}.cal-cell.sel{background:var(--accent);border-color:var(--accent)}.cal-cell.sel .cal-num{color:#0f1115;font-weight:700}.cal-dot{background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;bottom:6px;left:50%;transform:translate(-50%)}.cal-cell.sel .cal-dot{background:#0f1115}.cal-detail{margin-top:16px}.login{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login form{background:var(--card);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:12px;width:100%;max-width:320px;padding:28px 24px;display:flex}.login h1{margin:0 0 4px;font-size:20px}.login input{border:1px solid var(--border);color:var(--text);background:#0f1115;border-radius:10px;padding:12px 14px;font-size:15px}.login button{background:var(--accent);color:#0f1115;cursor:pointer;border:none;border-radius:10px;padding:12px;font-size:15px;font-weight:700}.login .err{color:#ff6b6b;font-size:13px}
