:root{
  --crimson:#8C1A2B; --crimson-dark:#6E1321; --crimson-deep:#4A0D17;
  --bg:#F9F6F4; --bg-card:#FFFFFF; --border:#E0D5D5;
  --text:#111111; --text-muted:#6B6B6B; --text-label:#444444;
  --success:#22C55E; --danger:#EF4444;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  background:var(--bg);color:var(--text);min-height:100vh}
a{color:inherit}

/* App shell: fixed sidebar + main panel */
.layout{display:flex;min-height:100vh}
.sidebar{width:220px;flex:0 0 220px;background:var(--crimson-deep);color:#fff;
  position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:1rem .75rem;gap:.25rem}
.sidebar .brand{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem 1rem}
.sidebar .brand img{height:34px;width:auto}
.sidebar .brand span{font-weight:700;font-size:.95rem;letter-spacing:-.2px}
.nav-item{display:flex;align-items:center;gap:.55rem;padding:.5rem .6rem;border-radius:8px;
  color:rgba(255,255,255,.82);text-decoration:none;font-size:.88rem;font-weight:600}
.nav-item:hover{background:rgba(255,255,255,.1);color:#fff}
.nav-item.active{background:var(--crimson);color:#fff}
.nav-section{font-size:.68rem;text-transform:uppercase;letter-spacing:.6px;
  color:rgba(255,255,255,.45);padding:.9rem .6rem .3rem;font-weight:700}
.nav-proj{display:block;padding:.35rem .6rem .35rem 1.4rem;border-radius:7px;
  color:rgba(255,255,255,.72);text-decoration:none;font-size:.82rem}
.nav-proj:hover{background:rgba(255,255,255,.08);color:#fff}
.sidebar .spacer{flex:1}
.sidebar .signout{color:rgba(255,255,255,.6);font-size:.8rem;text-decoration:none;padding:.5rem .6rem}
.sidebar .signout:hover{color:#fff}
.main{flex:1;min-width:0;padding:1.5rem 1.75rem;max-width:1100px}
.topbar{display:none}

/* Cards, tables, badges, buttons: same class names as v1, brand colors */
h2{font-size:1.15rem;margin:1.4rem 0 .7rem;letter-spacing:-.2px}
h2:first-child{margin-top:0}
.card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;
  padding:1rem 1.1rem;margin-bottom:1rem}
.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.8rem}
.proj-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;
  padding:1rem 1.1rem;text-decoration:none;display:block;transition:box-shadow .15s,border-color .15s}
.proj-card:hover{box-shadow:0 4px 18px rgba(74,13,23,.12);border-color:var(--crimson)}
.proj-card.archived{opacity:.6}
.proj-name{font-weight:700;font-size:.98rem}
.proj-desc{font-size:.8rem;color:var(--text-muted);margin-top:.25rem;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.proj-counts{font-size:.78rem;color:var(--text-muted);margin-top:.6rem;display:flex;gap:.8rem}
.count-open{color:var(--crimson);font-weight:700}
.count-done{color:var(--success);font-weight:700}
table{width:100%;border-collapse:collapse;background:var(--bg-card);
  border:1px solid var(--border);border-radius:12px;overflow:hidden}
th,td{text-align:left;padding:.6rem .7rem;font-size:.85rem;border-bottom:1px solid var(--border);vertical-align:middle}
th{background:#FBF8F6;font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}
tr:last-child td{border-bottom:none}
.title-cell{font-weight:600}
.title-cell a{text-decoration:none}
.title-cell a:hover{color:var(--crimson)}
.task-notes{font-size:.76rem;color:var(--text-muted);margin-top:.15rem}
.badge{font-size:.72rem;font-weight:700;border-radius:5px;padding:.15rem .5rem;white-space:nowrap}
.pri-High{background:#fdecee;color:#8C1A2B}
.pri-Med{background:#fffbeb;color:#92400e}
.pri-Low{background:#f0fdf4;color:#166534}
.owner-pill{font-size:.72rem;font-weight:600;color:var(--text-label);background:#f1ece9;border-radius:999px;padding:.15rem .55rem}
.overdue{color:var(--danger);font-weight:700}
.muted{color:var(--text-muted)}
.btn{display:inline-block;padding:.55rem .9rem;background:var(--crimson);color:#fff;border:none;
  border-radius:8px;font-size:.88rem;font-weight:600;cursor:pointer;text-decoration:none;transition:background .18s}
.btn:hover{background:var(--crimson-dark)}
.btn-sm{padding:.32rem .6rem;font-size:.78rem}
.btn-light{background:#f1ece9;color:var(--text)}
.btn-light:hover{background:#e6ddd9}
.btn-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin:.2rem 0 1rem}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
form.inline{display:inline}
select,input[type="text"],input[type="email"],input[type="password"],input[type="date"],textarea{
  padding:.5rem .6rem;border:1.5px solid var(--border);border-radius:8px;font-size:.9rem;
  color:var(--text);outline:none;background:#fff;font-family:inherit;transition:border-color .18s}
select:focus,input:focus,textarea:focus{border-color:var(--crimson)}
.status-select{font-size:.8rem;padding:.28rem .4rem}
.filters{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.filters label{font-size:.72rem;color:var(--text-muted);font-weight:700;text-transform:uppercase;letter-spacing:.4px}
.field{margin-bottom:1rem}
.field label{display:block;font-size:.76rem;font-weight:700;color:var(--text-label);
  margin-bottom:.35rem;text-transform:uppercase;letter-spacing:.5px}
.field input[type="text"],.field input[type="date"],.field select,.field textarea{width:100%}
.field textarea{min-height:90px;resize:vertical}
.empty{text-align:center;padding:2.5rem 1rem;color:var(--text-muted)}
.error{background:#fdecee;color:#8C1A2B;border:1px solid #f3c6cd;border-radius:8px;
  padding:.65rem .9rem;font-size:.875rem;margin-bottom:1rem}
.status-control{display:flex;gap:.3rem;align-items:center}
.deadline-control input[type="date"]{font-size:.8rem;padding:.28rem .4rem}
.deadline-control input.overdue{border-color:var(--danger);color:var(--danger)}
.mini-done{background:var(--success);color:#fff;border:none;border-radius:6px;
  font-size:.72rem;font-weight:700;padding:.3rem .55rem;cursor:pointer}
.mini-done:hover{background:#16a34a}

/* Auth pages (standalone, centered) */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}
.auth-card{background:var(--bg-card);border-radius:14px;box-shadow:0 4px 28px rgba(74,13,23,.12);
  padding:2.5rem 2rem;width:100%;max-width:390px}
.auth-logo{text-align:center;margin-bottom:1.6rem}
.auth-logo img{height:46px}
.auth-logo p{font-size:.87rem;color:var(--text-muted);margin-top:.5rem}
.auth-card label{display:block;font-size:.78rem;font-weight:700;color:var(--text-label);
  margin:1.1rem 0 .35rem;text-transform:uppercase;letter-spacing:.6px}
.auth-card input{width:100%}
.auth-card .btn{width:100%;margin-top:1.4rem;text-align:center}
.hint{font-size:.8rem;color:var(--text-muted);margin-top:1rem;text-align:center;line-height:1.4}
.who{text-align:center;font-size:.9rem;color:var(--text-label);background:#f1ece9;
  border-radius:8px;padding:.6rem .8rem;margin-bottom:.4rem}

/* Reporting bars + calendar grid */
.bar-row{display:flex;align-items:center;gap:.6rem;margin:.35rem 0}
.bar-label{flex:0 0 130px;font-size:.82rem;color:var(--text-label)}
.bar-track{flex:1;background:#f1ece9;border-radius:6px;height:18px;overflow:hidden}
.bar-fill{height:100%;background:var(--crimson);border-radius:6px}
.bar-num{flex:0 0 46px;text-align:right;font-size:.8rem;font-weight:700;color:var(--text-label)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-head{font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);
  text-align:center;font-weight:700;padding:.3rem 0}
.cal-cell{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;
  min-height:92px;padding:.35rem;font-size:.78rem}
.cal-cell.empty-day{background:transparent;border:none}
.cal-daynum{color:var(--text-muted);font-weight:700;font-size:.72rem}
.cal-cell.today .cal-daynum{color:var(--crimson)}
.cal-task{display:block;border-radius:5px;padding:.1rem .35rem;margin-top:.2rem;
  font-size:.72rem;background:#f1ece9;color:var(--text);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-task.is-overdue{background:#fdecee;color:var(--danger)}
.cal-task.is-done{opacity:.55}

/* Responsive: sidebar collapses to a top bar */
@media (max-width:760px){
  .layout{flex-direction:column}
  .sidebar{width:100%;height:auto;flex-direction:row;flex-wrap:wrap;position:static;padding:.6rem}
  .sidebar .brand{padding:.2rem .5rem;width:100%}
  .sidebar .spacer,.sidebar .nav-section{display:none}
  .nav-item{padding:.4rem .6rem;font-size:.8rem}
  .main{padding:1rem}
}

/* Audit admin additions */
.flash { padding:.6rem 1rem; border-radius:8px; margin-bottom:1rem; font-size:.88rem; font-weight:600; }
.flash-success { background:#dcfce7; color:#166534; }
.flash-error   { background:#fee2e2; color:#991b1b; }
.flash-info    { background:#dbeafe; color:#1e40af; }
.score-badge   { font-size:.75rem; font-weight:700; border-radius:5px; padding:.18rem .55rem; white-space:nowrap; }
.grade-A       { background:#dcfce7; color:#166534; }
.grade-B       { background:#fef9c3; color:#854d0e; }
.grade-C       { background:#ffedd5; color:#9a3412; }
.grade-D, .grade-F { background:#fee2e2; color:#991b1b; }
.status-dot    { width:10px; height:10px; border-radius:50%; display:inline-block; margin-right:5px; }
.note-thread   { display:flex; flex-direction:column; gap:.7rem; margin-top:1rem; }
.note-item     { background:var(--bg); border:1px solid var(--border); border-radius:8px; padding:.7rem .9rem; }
.note-meta     { font-size:.75rem; color:var(--text-muted); margin-bottom:.3rem; }
.note-body     { font-size:.88rem; }
.banner-info   { background:#dbeafe; color:#1e40af; border-radius:8px; padding:.7rem 1rem; margin-bottom:1rem; font-size:.88rem; }
.prop-grid     { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:.6rem; margin-bottom:1rem; }
.prop-item label { font-size:.7rem; text-transform:uppercase; letter-spacing:.4px; color:var(--text-muted); display:block; margin-bottom:.15rem; }
.prop-item span  { font-size:.9rem; font-weight:600; }

/* Logout form styled to match the prior .signout link */
.nav-logout-form { display:inline; }
.nav-logout-btn  { background:none; border:none; cursor:pointer; font:inherit;
  color:rgba(255,255,255,.6); font-size:.8rem; text-decoration:none;
  padding:.5rem .6rem; display:block; width:100%; text-align:left; }
.nav-logout-btn:hover { color:#fff; }
