/* ============================================================
   ChatBase — 📋 Homework tab + Home tile (homework.js)
   ============================================================ */
#hwRoot { max-width: 860px; }
.hw-add {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 130px 150px auto;
    gap: 8px;
    padding: 12px;
    border-radius: 20px;
    border: 1px solid var(--neo-line, rgba(255,255,255,.08));
    background: var(--neo-surface, rgba(22,22,28,.55));
    -webkit-backdrop-filter: blur(30px); backdrop-filter: blur(30px);
}
.hw-input {
    min-width: 0;
    padding: 11px 14px;
    border-radius: 12px;
    border: 1px solid var(--neo-line-hi, rgba(255,255,255,.16));
    background: rgba(255,255,255,.06);
    color: #fff; font: inherit; font-size: 14px; outline: none;
    color-scheme: dark;
}
.hw-input:focus { border-color: var(--neo-accent, #8ab4ff); }
.hw-add-btn { padding: 0 20px !important; }
.hw-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 16px 0 6px; flex-wrap: wrap; }
.hw-filters { display: flex; gap: 6px; }
.hw-filters button {
    padding: 7px 14px;
    border-radius: 999px;
    border: 1px solid var(--neo-line-hi, rgba(255,255,255,.16));
    background: transparent; color: var(--neo-dim, rgba(235,235,245,.6));
    font: inherit; font-size: 13px; cursor: pointer;
}
.hw-filters button.on { background: rgba(255,255,255,.1); color: #fff; }
.hw-summary { font-size: 13px; color: var(--neo-dim, rgba(235,235,245,.6)); }
.hw-group { margin-top: 14px; }
.hw-group-label {
    font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
    color: var(--neo-dim, rgba(235,235,245,.6));
    margin: 0 4px 6px;
}
.hw-group-label span { opacity: .6; margin-left: 4px; }
.hw-group-label.late { color: #ff7a90; }
.hw-list, .hw-tile-list { display: flex; flex-direction: column; gap: 6px; }
.hw-item {
    display: flex; align-items: center; gap: 12px;
    padding: 11px 14px;
    border-radius: 14px;
    border: 1px solid var(--neo-line, rgba(255,255,255,.08));
    background: rgba(255,255,255,.035);
    transition: opacity .25s, background .2s;
}
.hw-item:hover { background: rgba(255,255,255,.06); }
.hw-check {
    flex: 0 0 auto;
    width: 24px; height: 24px;
    border-radius: 8px;
    border: 2px solid var(--neo-line-hi, rgba(255,255,255,.3));
    background: transparent; color: #08110d;
    font-size: 14px; font-weight: 900; line-height: 1;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: background .2s, border-color .2s, transform .2s var(--neo-spring, ease);
}
.hw-check:hover { border-color: #34e8b0; transform: scale(1.08); }
.hw-item.done .hw-check { background: #34e8b0; border-color: #34e8b0; }
.hw-item.done { opacity: .55; }
.hw-item.done .hw-title { text-decoration: line-through; }
.hw-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.hw-title { font-size: 14.5px; font-weight: 600; overflow-wrap: anywhere; }
.hw-meta { display: flex; flex-wrap: wrap; gap: 8px; font-size: 12px; color: var(--neo-dim, rgba(235,235,245,.6)); }
.hw-due.late { color: #ff7a90; font-weight: 700; }
.hw-due.today { color: #ffd166; font-weight: 700; }
.hw-due.soon { color: var(--neo-accent, #8ab4ff); }
.hw-del { background: none; border: 0; cursor: pointer; font-size: 15px; opacity: .5; padding: 4px; }
.hw-del:hover { opacity: 1; }
.hw-empty { padding: 30px 12px; text-align: center; color: var(--neo-dim, rgba(235,235,245,.6)); font-size: 14px; }
.hw-empty.small { padding: 12px 0; text-align: left; }
.hw-more { background: none; border: 0; padding: 4px 0; color: var(--neo-accent, #8ab4ff); font: inherit; font-size: 13px; cursor: pointer; text-align: left; }
.hw-tile-list .hw-item { padding: 9px 12px; }

@media (max-width: 700px) {
    .hw-add { grid-template-columns: 1fr 1fr; }
    .hw-add #hwTitle { grid-column: 1 / -1; }
    .hw-add-btn { grid-column: 1 / -1; padding: 12px !important; }
}
@media (prefers-reduced-motion: reduce) {
    .hw-check:hover { transform: none; }
}
