/* ======================================================
   ✍️ 予兆ノート（yocho）専用UI
====================================================== */

.page{
  padding: 18px 0 26px;
}

.brand{
  display:flex;
  align-items:baseline;
  gap:10px;
  flex-wrap:wrap;
}
.brand .name{
  font-weight:900;
  letter-spacing:.02em;
}
.brand .mini{
  color: var(--muted);
  font-size: 12.5px;
}

.h1{
  margin: 10px 0 10px;
  font-size: clamp(22px, 5vw, 34px);
  line-height: 1.15;
  letter-spacing:.01em;
}
.lead{
  margin: 0 0 14px;
  color: var(--muted);
  line-height: 1.8;
}

.grid{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 14px;
}

.form{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.form .full{ grid-column: 1 / -1; }
.form-row{
  display:grid;
  gap: 6px;
}
.label{
  font-size: 12.5px;
  color: var(--muted);
}
.actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}

.note{
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.7;
}

.filters{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:flex-end;
}
.filters .w{ min-width: 160px; }
.filters .w-wide{ min-width: 240px; }
.filters .w-narrow{ min-width: 120px; }

.list{
  display:grid;
  gap:10px;
  margin-top: 10px;
}
.item{
  border:1px solid var(--line);
  border-radius: var(--radius);
  background: rgba(255,255,255,.05);
  padding: 12px 14px;
}
.item:hover{
  background: rgba(255,255,255,.07);
}
.item-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.item-title{
  font-weight: 820;
  letter-spacing:.01em;
  margin:0;
}
.item-meta{
  color: var(--muted);
  font-size: 12.5px;
  margin-top: 6px;
}
.item-body{
  margin-top: 10px;
  color: var(--text);
  line-height: 1.85;
  white-space: pre-wrap;
  word-break: break-word;
}
.item-tags{
  margin-top: 10px;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.status{
  font-size: 12.5px;
  padding: 6px 10px;
  border-radius: 999px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.05);
  color: var(--muted);
  white-space: nowrap;
}
.status.hit{
  border-color: rgba(139,211,255,.45);
  background: rgba(139,211,255,.10);
  color: var(--text);
}
.status.miss{
  border-color: rgba(255,180,180,.35);
  background: rgba(255,180,180,.08);
  color: var(--text);
}
.status.pending{
  border-color: rgba(200,168,255,.35);
  background: rgba(200,168,255,.08);
  color: var(--text);
}

/* modal */
.modal-backdrop{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.55);
  display:none;
  align-items:center;
  justify-content:center;
  padding: 18px;
  z-index: 50;
}
.modal-backdrop.open{ display:flex; }
.modal{
  width: min(880px, 96vw);
  max-height: min(86vh, 780px);
  overflow:auto;
  border:1px solid var(--line);
  border-radius: var(--radius2);
  background: rgba(12,16,32,.92);
  box-shadow: var(--shadow);
  padding: 14px;
}
.modal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.modal-title{
  margin:0;
  font-weight:900;
  letter-spacing:.01em;
}
.modal-close{
  border:1px solid var(--line);
  background: rgba(255,255,255,.06);
  color: var(--text);
  border-radius: 999px;
  padding: 10px 12px;
  cursor:pointer;
}

.mini-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.danger{
  border-color: rgba(255,180,180,.35) !important;
}
.danger:hover{
  background: rgba(255,180,180,.10) !important;
}

@media (max-width: 860px){
  .grid{ grid-template-columns: 1fr; }
  .form{ grid-template-columns: 1fr; }
  .filters .w, .filters .w-wide, .filters .w-narrow{ min-width: 100%; }
  .mini-grid{ grid-template-columns: 1fr; }
}
/* 期限（結果日）が近い/過ぎたものを目立たせる */
.item.due-soon{
  border-color: rgba(255,255,255,.22);
  background: rgba(255,255,255,.07);
}
.item.due-overdue{
  border-color: rgba(255,180,180,.40);
  background: rgba(255,180,180,.10);
}
.status.due-soon{
  border-color: rgba(255,255,255,.22);
  background: rgba(255,255,255,.08);
  color: var(--text);
}
.status.due-overdue{
  border-color: rgba(255,180,180,.40);
  background: rgba(255,180,180,.12);
  color: var(--text);
}



/* Toast（保存しました 等） */
.toast{
  position: fixed;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(12,16,32,.92);
  box-shadow: var(--shadow);
  padding: 10px 14px;
  color: var(--text);
  z-index: 80;
  display: none;
  max-width: min(92vw, 720px);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.toast.show{ display: block; }


/* 検索モード切替（全文 / タグのみ） */
.search-mode{
  display: inline-flex;
  gap: 6px;
  margin-left: 10px;
  align-items: center;
  flex-wrap: nowrap;
}
.mode-btn{
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.06);
  color: var(--muted);
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
}
.mode-btn.active{
  background: rgba(255,255,255,.12);
  color: var(--text);
  border-color: rgba(255,255,255,.22);
}

