*{box-sizing:border-box}body{font-family:-apple-system,"Segoe UI",Roboto,"Noto Sans",sans-serif;max-width:720px;margin:0 auto;padding:16px;color:#222;background:#fafafa}
header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ddd;padding-bottom:8px;margin-bottom:16px}
h1{font-size:20px;margin:0}.top-right{display:flex;gap:8px;align-items:center}
select,button,input,textarea{font-size:14px;padding:8px;border:1px solid #ccc;border-radius:6px}
button{cursor:pointer;background:#1d9bf0;color:#fff;border:none}
button:disabled{background:#bbb;cursor:not-allowed}
button.active{background:#0d7fc4}
a.btn{display:inline-block;background:#1d9bf0;color:#fff;padding:8px 12px;border-radius:6px;text-decoration:none}
nav.tabs{display:flex;gap:8px;margin-bottom:16px}
nav.tabs button{background:#eee;color:#333}
nav.tabs button.active{background:#1d9bf0;color:#fff}
nav.tabs.small button{font-size:13px;padding:6px 10px}
label{display:block;margin:8px 0}label span{display:block;margin-bottom:4px;font-size:13px;color:#555}
textarea{width:100%;resize:vertical}
.row{display:flex;gap:8px;align-items:center;margin:8px 0}
#counter{font-size:13px;color:#777}#counter.over{color:#d00}
.err{color:#c00}.ok{color:#0a0}
.hint{font-size:13px;color:#777}
.card{border:1px solid #ddd;border-radius:8px;padding:12px;margin:12px 0;background:#fff}
ul#postList{list-style:none;padding:0}
ul#postList li{border:1px solid #ddd;border-radius:8px;padding:10px;margin:8px 0;background:#fff}
.ptext{white-space:pre-wrap;margin-bottom:6px}
.pmeta{font-size:12px;color:#777;margin-bottom:6px}
.note{color:#0a0}.pmeta .err{font-size:12px}
code{background:#eee;padding:2px 6px;border-radius:4px;word-break:break-all}

/* ---- Block 2 additions ---- */
a.btn.ghost,.btn.ghost{background:#eee;color:#333}
label.filebtn{display:inline-block}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:12px 0}
.cal-dow{text-align:center;font-size:12px;color:#777;padding:4px}
.cal-day{min-height:86px;border:1px solid #ddd;border-radius:8px;padding:4px;background:#fff;cursor:pointer}
.cal-day.blank{background:transparent;border:none;cursor:default}
.cal-day.today{border-color:#1d9bf0;box-shadow:0 0 0 1px #1d9bf0}
.cal-day.drop{background:#e8f4fd;border-color:#1d9bf0}
.cal-num{font-size:12px;color:#555;font-weight:600}
.cal-post{font-size:12px;background:#eef6fd;border-radius:4px;padding:2px 4px;margin:2px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:grab}
.cal-post.sent{opacity:.55}
.cal-more{font-size:11px;color:#888}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;z-index:50}
.modal[hidden]{display:none}
.modal-body{background:#fff;border-radius:12px;padding:20px;width:min(560px,92vw);max-height:84vh;overflow:auto}
.modal-body ul{list-style:none;padding:0}
.modal-body li{border:1px solid #eee;border-radius:8px;padding:8px;margin:6px 0}
.row.between{justify-content:space-between}
.tcell{border:1px solid #ddd;border-radius:8px;padding:8px;margin:8px 0;background:#fff}
.tcell-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.tcbtns button{font-size:12px;padding:4px 8px;margin-left:4px;background:#eee;color:#333}
.tbadge{display:inline-block;background:#eef6fd;color:#0d7fc4;font-size:11px;border-radius:4px;padding:1px 6px;margin-left:4px}
#counter.over,.cnt.over{color:#d00}
