/* MFB Project Mayhem — McFeggan Brown brand palette (Logo Use Guidelines V1.0 2023) */

:root{
  --ground:#F4F7F6; --surface:#FFFFFF; --surface2:#EAF2F0;
  --border:#DCE6E3; --border2:#C3D1CD;
  --ink:#343434; --ink2:#1A1A1A; --muted:#7D6D61; --faint:#A79C93;

  --green:#00B49B; --green-dk:#005A4E; --green-bg:#E0F5F2; --green-br:#B8E6DE;
  --lime:#B4DC59; --lime-dk:#5A6E2D; --lime-bg:#F1F8E0; --lime-br:#DCEBB4;
  --coral:#DB5461; --coral-dk:#6E2A31; --coral-bg:#FCECEE; --coral-br:#EFC4C8;
  --warm:#7D6D61; --warm-dk:#3F3731; --warm-bg:#F3F0ED; --warm-br:#DDD5CE;
  --purple:#9368BA; --purple-dk:#4B038C; --purple-bg:#F0E9F7; --purple-br:#DDD0EC;

  --r:10px; --r-lg:12px;
  --safe-b:env(safe-area-inset-bottom,0px);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'DM Sans',system-ui,-apple-system,sans-serif;
  background:var(--ground); color:var(--ink);
  -webkit-font-smoothing:antialiased; -webkit-tap-highlight-color:transparent;
}
a{color:var(--green-dk); text-decoration:none}
button{font:inherit}
.mono{font-family:'DM Mono',ui-monospace,monospace}

/* ---------- boot / states ---------- */
.boot{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--muted);font-size:14px}
.pad{padding:16px 18px}
.center-wrap{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding:0 28px;max-width:440px;margin:0 auto}
.msg{padding:12px 14px;border-radius:var(--r);font-size:13px;line-height:1.55}
.msg.info{background:var(--green-bg)}
.msg.warn{background:var(--warm-bg);color:var(--warm-dk)}
.msg.bad{background:var(--coral-bg);color:var(--coral-dk)}
.empty{padding:26px 18px;text-align:center;color:var(--muted);font-size:14px;line-height:1.55}

/* ---------- sign in ---------- */
.signin img.logo{width:208px;height:auto;display:block;margin-bottom:18px}
.signin p.sub{font-size:13.5px;line-height:1.55;color:var(--muted);margin:0 0 26px}
label.f{display:block;font-size:12px;font-weight:500;color:var(--muted);margin-bottom:5px}
input[type=email],input[type=password],input[type=text],textarea,select{
  width:100%;padding:0 11px;height:48px;font-family:inherit;font-size:16px;color:var(--ink);
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
}
textarea{height:auto;padding:11px;line-height:1.5;resize:vertical}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-bg)}
.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;padding:0 16px;
  background:var(--green-dk);color:#fff;border:0;border-radius:var(--r);font-size:15px;font-weight:500;cursor:pointer}
.btn:disabled{opacity:.55;cursor:default}
.btn.ghost{background:var(--surface);color:var(--ink);border:1px solid var(--border)}
.btn.soft{background:var(--green-bg);color:var(--green-dk)}
.btn.sm{min-height:40px;width:auto;font-size:13.5px;padding:0 14px}

/* ---------- app chrome ---------- */
.topbar{display:flex;align-items:center;gap:11px;padding:14px 18px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}
.topbar img.mark{height:22px;width:auto;display:block;flex-shrink:0}
.topbar .who{flex-grow:1;min-width:0}
.topbar h1{margin:0;font-size:19px;font-weight:600;color:var(--ink2);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar .sub{font-size:12px;color:var(--muted);margin-top:1px}
.iconbtn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--r);
  border:1px solid var(--border);background:var(--surface);color:var(--muted);flex-shrink:0;cursor:pointer}

main{padding:16px 18px calc(92px + var(--safe-b));display:flex;flex-direction:column;gap:10px}

nav.tabs{position:fixed;left:0;right:0;bottom:0;display:flex;background:var(--surface);
  border-top:1px solid var(--border);padding:7px 0 calc(11px + var(--safe-b));z-index:10}
nav.tabs a{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:7px 0;color:var(--muted);font-size:11px}
nav.tabs a.on{color:var(--green-dk);font-weight:500}

.label{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.row-between{display:flex;align-items:baseline;gap:8px}
.row-between .label{flex-grow:1}

/* ---------- cards ---------- */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.card.pad{padding:15px}
.card-head{display:flex;align-items:center;gap:8px;padding:11px 15px;background:var(--surface2);border-bottom:1px solid var(--border);font-size:12.5px}
.card-head .grow{flex-grow:1;font-weight:500;color:var(--ink2)}

.jobrow{display:flex;gap:12px;padding:12px 15px;color:var(--ink);border-bottom:1px solid var(--border)}
.jobrow:last-child{border-bottom:0}
.jobrow .time{width:48px;flex-shrink:0}
.jobrow .time b{display:block;font-family:'DM Mono',monospace;font-size:12.5px;font-weight:500;color:var(--ink2)}
.jobrow .time span{display:block;font-family:'DM Mono',monospace;font-size:11px;color:var(--muted)}
.jobrow .body{flex-grow:1;min-width:0}
.jobrow .body .t{font-size:14.5px;font-weight:500}
.jobrow .body .d{font-size:12px;color:var(--muted);margin-top:2px}

.daycard{display:flex;align-items:center;gap:12px;padding:12px 15px;color:var(--ink);border-bottom:1px solid var(--border);min-height:64px}
.daycard:last-child{border-bottom:0}
.daycard .dn{width:40px;flex-shrink:0}
.daycard .dn i{font-style:normal;display:block;font-family:'DM Mono',monospace;font-size:10px;color:var(--muted);text-transform:uppercase}
.daycard .dn b{display:block;font-size:17px;font-weight:600;line-height:1.15;color:var(--ink2)}
.daycard .body{flex-grow:1;min-width:0}
.daycard .body .t{font-size:14.5px;font-weight:500}
.daycard .body .d{font-size:12px;color:var(--muted);margin-top:1px}

.avatar{width:28px;height:28px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  font-family:'DM Mono',monospace;font-size:10.5px;flex-shrink:0;background:var(--surface2);color:var(--warm-dk)}
.avatar.me{background:var(--green-bg);color:var(--green-dk)}

/* ---------- chips & dots ---------- */
.chip{display:inline-flex;align-items:center;font-size:11px;font-weight:500;padding:3px 10px;border-radius:99px;white-space:nowrap}
.chip.provisional{background:var(--warm-bg);color:var(--warm-dk);border:1px solid var(--warm-br)}
.chip.confirmed{background:var(--lime-bg);color:var(--lime-dk);border:1px solid var(--lime-br)}
.chip.locked{background:var(--coral-bg);color:var(--coral-dk);border:1px solid var(--coral-br)}
.chip.away{background:var(--purple-bg);color:var(--purple-dk);border:1px solid var(--purple-br)}
.code{font-family:'DM Mono',monospace;font-size:11px;background:var(--green-bg);border:1px solid var(--green-br);
  color:var(--green-dk);padding:2px 7px;border-radius:5px;white-space:nowrap}
.code.flat{background:var(--surface2);border-color:var(--border);color:var(--muted)}
.dot{width:9px;height:9px;border-radius:5px;flex-shrink:0}
.dot.provisional{background:var(--warm)} .dot.confirmed{background:var(--lime)}
.dot.locked{background:var(--coral)} .dot.away{background:var(--purple)}

/* ---------- day detail ---------- */
.field{padding-top:12px;margin-top:12px;border-top:1px solid var(--border)}
.field:first-child{padding-top:0;margin-top:0;border-top:0}
.field .k{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.field .v{font-size:13.5px;line-height:1.5}
.linerow{display:flex;gap:10px;align-items:center;padding-top:12px;margin-top:12px;border-top:1px solid var(--border)}
.linerow svg{flex-shrink:0}
.linerow .grow{flex-grow:1;min-width:0}
.stop-n{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:11px;
  background:var(--surface2);color:var(--green-dk);font-family:'DM Mono',monospace;font-size:11px;flex-shrink:0}
.stop-n.lead{background:var(--green);color:#fff}

.comment{display:flex;gap:10px;margin-bottom:13px}
.comment .meta{font-size:12px;color:var(--muted);margin-bottom:2px}
.comment .body{font-size:13.5px;line-height:1.45}
.addcomment{display:flex;gap:8px}
.addcomment input{flex-grow:1;height:44px;background:var(--ground)}
.addcomment .btn{width:auto;min-height:44px;padding:0 15px;font-size:13.5px}

/* ---------- week strip ---------- */
.weekstrip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;padding:0 14px 12px;background:var(--surface)}
.weekstrip a{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 0;border-radius:var(--r);color:var(--muted)}
.weekstrip a.on{background:var(--green-dk);color:#fff}
.weekstrip a.off{color:var(--faint)}
.weekstrip i{font-style:normal;font-family:'DM Mono',monospace;font-size:10px}
.weekstrip b{font-size:15px;font-weight:500}

/* ---------- desktop ---------- */
@media (min-width:768px){
  main{max-width:820px;margin:0 auto;padding:22px 24px 40px}
  nav.tabs{position:static;max-width:820px;margin:0 auto;border-top:0;border-bottom:1px solid var(--border);
    background:transparent;padding:0;gap:4px}
  nav.tabs a{flex:0 0 auto;flex-direction:row;gap:7px;padding:11px 15px;font-size:13.5px;border-bottom:2px solid transparent}
  nav.tabs a.on{border-bottom-color:var(--green)}
  .topbar{padding:16px 24px}
  .weekstrip{max-width:820px;margin:0 auto;padding:0 24px 14px}
}
