:root{--brand:#781b2b;--brand-dark:#4f0c18;--cream:#faf7f1}body{background:var(--cream)}.bg-brand{background:linear-gradient(90deg,var(--brand-dark),var(--brand))}.admin-shell{display:flex;min-height:100vh}.sidebar{width:250px;position:fixed;inset:0 auto 0 0;padding:18px 14px;background:linear-gradient(180deg,var(--brand-dark),var(--brand));color:#fff}.brand-block{padding:4px 8px 18px;border-bottom:1px solid #ffffff33;margin-bottom:12px}.brand-en{font-family:Georgia,serif;font-weight:700}.brand-ja{font-size:.8rem;opacity:.8}.sidebar .nav-link{color:#f4dfe3;border-radius:8px;margin:2px 0}.sidebar .nav-link:hover,.sidebar .nav-link.active{background:#ffffff24;color:#fff}.admin-main{margin-left:250px;width:calc(100% - 250px);padding:24px}.stat-card{border-top:4px solid var(--brand)}.required:after{content:' *';color:#dc3545}@media(max-width:767.98px){.admin-main{margin-left:0;width:100%;padding:14px}}
.todo-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.todo-note {
  --note-paper: #fff4ad;
  --note-bottom: #ffed91;
  --note-fold: #e8d578;
  position: relative;
  min-width: 0;
  min-height: 200px;
  padding: 28px 18px 30px;
  background: linear-gradient(175deg, var(--note-paper) 65%, var(--note-bottom));
  border: 0;
  border-radius: 1px 1px 18px 1px;
  box-shadow: 1px 5px 7px rgba(76, 59, 20, .16);
  transition: transform .12s ease, box-shadow .12s ease;
}
/* A glued top edge and a folded corner; neither blocks the card link. */
.todo-note::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 16px;
  background: rgba(145, 109, 23, .08);
  border-bottom: 1px solid rgba(145, 109, 23, .06);
  pointer-events: none;
}
.todo-note::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 20px;
  height: 20px;
  background: linear-gradient(135deg, var(--note-fold) 50%, var(--cream) 51%);
  border-radius: 3px 0 0;
  pointer-events: none;
}
@media (hover: hover) {
  .todo-note:hover {
    transform: translateY(-2px);
    box-shadow: 1px 7px 11px rgba(76, 59, 20, .2);
  }
}
.todo-note-high {
  --note-paper: #ffe0df;
  --note-bottom: #ffcecc;
  --note-fold: #e5aba9;
}
.todo-note-content {
  color: #403720;
  font-size: 1.08rem;
  font-weight: 600;
  line-height: 1.65;
  white-space: normal;
  overflow-wrap: anywhere;
}
.todo-note-meta {
  color: #655b45;
  font-size: .9rem;
  overflow-wrap: anywhere;
}
@media (max-width: 1199.98px) {
  .todo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
  .todo-grid { gap: 12px; }
  .todo-note { min-height: 175px; padding: 23px 12px 26px; }
  .todo-note-content { font-size: .95rem; line-height: 1.6; }
  .todo-note-meta { font-size: .8rem; }
}
@media (prefers-reduced-motion: reduce) {
  .todo-note { transition: none; }
  .todo-note:hover { transform: none; }
}

.todo-full-content{overflow-wrap:anywhere;line-height:1.8}.todo-note:focus-within{outline:3px solid #0d6efd;outline-offset:3px}
.todo-detail { max-width: 760px; }
.admin-avatar { width: 48px; height: 48px; flex-shrink: 0; border-radius: 50%; object-fit: cover; display: inline-flex; align-items: center; justify-content: center; background: #e9ecef; color: #6c757d; font-size: 1.5rem; }
.admin-avatar-large { width: 96px; height: 96px; font-size: 3rem; }
.todo-detail-note { --detail-note-inset: 18px; margin-bottom: 8px; padding-top: 0; }
.todo-detail-note::before { display: none; }
.todo-detail-note-heading {
  margin: 0 calc(-1 * var(--detail-note-inset)) 12px;
  padding: 6px var(--detail-note-inset);
  min-height: 36px;
  background: rgba(145, 109, 23, .08);
  border-bottom: 1px solid rgba(145, 109, 23, .06);
}
.todo-detail-note:hover { transform: none; }
.todo-participants-link {
  border: 0;
  padding: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  text-decoration: underline;
  text-underline-offset: 3px;
  overflow-wrap: anywhere;
}
.todo-messages { margin-top: 20px; background: #bddfdf; }
.todo-messages-heading { padding: 10px 16px; margin: 0; background: #82b8e5; color: #102f48; }
.todo-messages-body { padding: 20px 18px; }
.todo-message-bubble { padding: 12px 16px; background: #fff; border: 1px solid #6b8585; border-radius: 16px; overflow-wrap: anywhere; }
.todo-message-form { margin-top: 28px; }
.todo-image-preview { display: inline-block; cursor: zoom-in; }
.todo-detail-history summary { width: fit-content; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
#todoExpandedImage { max-height: 75vh; object-fit: contain; }
@media (max-width: 767.98px) {
  html { font-size: 80%; }
  .todo-detail-page .admin-page-heading > h1 { display: none; }
  .navbar > .container-fluid { flex-wrap: nowrap; gap: 8px; }
  .navbar-brand { margin-right: 0; }
  .navbar-toggler { flex-shrink: 0; }
}
.admin-page-heading { gap: 12px; flex-wrap: wrap; }
.admin-account { max-width: 100%; }
.admin-account > span { overflow-wrap: anywhere; text-align: right; }
.admin-account .dropdown { flex-shrink: 0; }
.admin-account-toggle { min-width: 44px; min-height: 44px; }
.todo-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.todo-toolbar > .btn { flex-shrink: 0; }
.todo-toolbar-actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.todo-viewers-button { min-width: 44px; min-height: 44px; padding: 6px; font-size: 1.35rem; }
.todo-push-summary { --bs-btn-color: #616161; --bs-btn-hover-color: #444; --bs-btn-active-color: #444; min-height: 44px; padding: 6px 0; color: #616161; text-decoration: none; white-space: nowrap; }
.todo-push-summary::after { color: #0d6efd; }
.todo-push-panel { width: clamp(240px, 60vw, 360px); max-width: calc(100vw - 28px); padding: 14px; box-shadow: 0 4px 16px #0002; }
.todo-push-panel .btn-close { margin-top: 5px; }
@media (max-width: 359.98px) {
  .todo-toolbar-actions { gap: 2px; }
  .todo-toolbar > .btn { padding-left: 8px; padding-right: 8px; }
  .todo-push-summary { font-size: .875rem; }
}
.home-artwork-button { padding: 0; border: 0; border-radius: 50%; background: transparent; cursor: zoom-in; }
.home-artwork { display: block; width: 160px; height: 160px; border-radius: 50%; }
.home-artwork-expanded { display: block; width: 100%; height: auto; max-height: 75vh; object-fit: contain; }
@media (max-width: 575.98px) {
  .todo-detail-note { --detail-note-inset: 12px; }
  .todo-messages-body { padding: 16px 12px; }
  .todo-message-bubble { padding: 10px 12px; }
}
