*{box-sizing:border-box}
body{margin:0;background:#f6f7f9;color:#111827;font:14px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
h1{font-size:18px;margin:0}
a{color:var(--accent)}
.muted{color:#6b7280;font-size:12px}
.warn{color:#b45309;font-weight:600}
.error{color:#b91c1c}
button{background:var(--accent);color:#fff;border:0;border-radius:6px;min-height:34px;padding:7px 14px;font:inherit;cursor:pointer}
button.plain{background:none;color:#374151;border:1px solid #d1d5db}
input,select{font:inherit;min-height:34px;padding:6px 8px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:inherit;max-width:100%}
.login{max-width:340px;margin:12vh auto;background:#fff;padding:24px;border-radius:10px;border:1px solid #e5e7eb}
.login form{display:grid;gap:12px;margin-top:16px}
.login label{display:grid;gap:4px}
.top{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;padding:10px 16px;border-bottom:1px solid #e5e7eb}
.top form{margin-left:auto}
main{padding:12px 16px}
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.table{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow-x:auto}
table{border-collapse:collapse;width:100%}
th{text-align:left;font-weight:600;color:#374151;background:#f9fafb;white-space:nowrap}
th,td{padding:6px 10px;border-bottom:1px solid #eef0f3;vertical-align:top}
tr:last-child td{border-bottom:0}
td input[data-field=note]{width:100%;min-width:150px}
.saved{outline:2px solid #16a34a}
.failed{outline:2px solid #dc2626}
.times{background:#eef2ff;color:var(--accent);border-radius:9px;padding:0 7px;font-size:12px;white-space:nowrap}
.empty{text-align:center;color:#6b7280;padding:28px}
.events{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:8px;min-width:240px}
summary{cursor:pointer;color:var(--accent)}
.add{margin-top:14px}
.add form{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
[hidden]{display:none!important}
.name{font-weight:600;color:inherit}
.due{border-color:#b45309;color:#b45309}
.views{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:10px}
.views a{padding:6px 12px;border-radius:6px;color:#374151;text-decoration:none}
.views a[aria-current]{background:#fff;border:1px solid #d1d5db;color:#111827;font-weight:600}
.export{margin-left:auto}
.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:10px;overflow-x:auto;padding-bottom:8px}
.stage{background:#eef0f3;border-radius:8px;padding:10px;display:grid;gap:8px;align-content:start}
.stage h2,.panel h2{font-size:14px;margin:0}
.card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:10px;display:grid;gap:4px;overflow-wrap:anywhere}
.card select{justify-self:start;margin-top:4px}
.lead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:12px;align-items:start}
.panel{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px;display:grid;gap:12px;overflow-wrap:anywhere}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.fields label{display:grid;gap:4px;color:#6b7280;font-size:12px;align-content:start}
.fields input,.fields select{color:#111827;font-size:14px;width:100%}
.fields .wide{grid-column:1/-1}
.log{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px}
@media (max-width:760px){
  .lead{grid-template-columns:minmax(0,1fr)}
  .log{grid-template-columns:minmax(0,1fr)}
  .board{grid-auto-columns:85%;scroll-snap-type:x mandatory}
  .stage{scroll-snap-align:start}
  .table{background:none;border:0}
  thead{display:none}
  table,tbody,tr,td{display:block;width:100%}
  tr{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:10px;padding:6px 0}
  td{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px;border:0;padding:4px 12px;overflow-wrap:anywhere}
  td::before{content:attr(data-label);color:#6b7280;font-size:12px}
  td:has(> div:empty){display:none}
  td.empty{display:block}
  td.empty::before{content:none}
}
