
:root{--navy:#0B1E4F;--navy2:#16306E;--gold:#9A7114;--gold2:#C9A227;--cream:#FBF7EC;--line:#D9D2C0;--ink:#1A1A1A;--muted:#555;--hl:#FFF0C2;--good:#1F7A3A}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#EEEAE0;color:var(--ink);font-family:"Helvetica Neue",Helvetica,Arial,Inter,sans-serif;font-size:16px;line-height:1.4;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.sheet{max-width:960px;margin:20px auto 60px;background:#fff;border-radius:14px;box-shadow:0 2px 10px rgba(0,0,0,.06);padding:30px 34px}
h1,h2,h3{color:var(--navy);margin:0;line-height:1.2}
h2{font-size:19px;margin-bottom:10px;display:flex;align-items:center;gap:10px}
h2 .num{display:inline-flex;width:28px;height:28px;border-radius:7px;background:var(--gold2);color:var(--navy);font-size:15px;font-weight:900;align-items:center;justify-content:center;flex:none}
input,select,textarea{font:inherit;color:inherit}
button{font:inherit;cursor:pointer}

/* header */
.head{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:4px solid var(--gold2);padding-bottom:14px}
.head img{height:40px;display:block}
.kick{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:800;text-align:right}
.title{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:18px 0 6px}
.title h1{font-size:32px;letter-spacing:-.01em}
.meta{display:flex;gap:14px;flex-wrap:wrap}
.field{display:flex;flex-direction:column;font-size:12px;font-weight:800;color:var(--navy);text-transform:uppercase;letter-spacing:.06em}
.field input{margin-top:4px;padding:7px 9px;border:1.5px solid var(--line);border-radius:7px;font-size:16px;font-weight:600;text-transform:none;letter-spacing:0;min-width:150px}
.daybadge{align-self:flex-end;background:var(--navy);color:#fff;border-radius:8px;padding:9px 14px;font-weight:800;white-space:nowrap}
.why{display:flex;align-items:center;gap:10px;background:var(--cream);border-left:5px solid var(--gold2);border-radius:8px;padding:10px 14px;margin:12px 0 22px}
.why label{font-weight:900;color:var(--navy);white-space:nowrap}
.why input{flex:1;border:0;border-bottom:1.5px dashed var(--gold2);background:transparent;padding:4px 2px;font-size:16px;min-width:0}

section{margin-bottom:24px}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;margin:-4px 0 16px}
.btn{border:1.5px solid var(--navy);background:#fff;color:var(--navy);border-radius:999px;padding:7px 16px;font-weight:700;font-size:14px}
.btn.primary{background:var(--navy);color:#fff}
.btn.ghost{border-color:var(--line);color:var(--muted)}

/* score */
.scorewrap{display:grid;grid-template-columns:170px 1fr;gap:18px;align-items:stretch}
.ring{border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px;text-align:center}
.ring svg{width:116px;height:116px}
.ring .lbl{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-top:6px}
.ring .msg{font-size:13px;color:var(--muted);margin-top:2px}
.metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}
.m{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:8px 10px 9px}
.m .name{font-weight:800;color:var(--navy);font-size:15px}
.m .sub{font-size:12px;color:var(--muted)}
.m .ctl{grid-row:span 2;display:flex;align-items:center;gap:6px}
.m .ctl button{width:34px;height:34px;border-radius:8px;border:1.5px solid var(--navy);background:#fff;color:var(--navy);font-size:20px;font-weight:800;line-height:1;padding:0}
.m .ctl button:active{background:var(--navy);color:#fff}
.m .val{width:64px;text-align:center;font-size:20px;font-weight:900;color:var(--navy);border:1.5px solid var(--line);border-radius:8px;padding:4px 2px}
.m .val.money{width:96px}
.bar{grid-column:1 / -1;height:7px;background:#EEE9DC;border-radius:99px;overflow:hidden;margin-top:6px}
.bar i{display:block;height:100%;width:0;background:var(--gold2);border-radius:99px;transition:width .2s}
.m.hit{border-color:#9BC7A6;background:#F5FBF6}
.m.hit .bar i{background:var(--good)}
.goal{font-size:12px;font-weight:700;color:var(--gold)}

/* week */
.week{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.w{border:1px solid var(--line);border-top:4px solid var(--navy);border-radius:8px;padding:8px 10px}
.w b{display:block;font-size:20px;color:var(--navy)}
.w span{font-size:12px;color:var(--muted)}
.note{font-size:13px;color:var(--muted);margin-top:8px}

/* rhythm */
.rhythm{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.r{display:flex;gap:9px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:10px;cursor:pointer;user-select:none}
.r input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--navy);flex:none}
.r b{display:block;color:var(--navy);font-size:14px}
.r span{font-size:12.5px;color:var(--muted);line-height:1.3}
.r.on{background:var(--cream);border-color:var(--gold2)}

/* tables */
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{background:var(--navy);color:#fff;text-align:left;padding:7px 8px;font-size:12.5px;letter-spacing:.03em}
.tbl td{border-bottom:1px solid var(--line);padding:4px 5px;vertical-align:middle}
.tbl td.n{width:30px;text-align:center;font-weight:800;color:var(--gold)}
.tbl input[type=text],.tbl select{width:100%;border:1px solid transparent;border-radius:6px;padding:6px 6px;background:#FAF8F2;font-size:14px}
.tbl input[type=text]:focus,.tbl select:focus{outline:none;border-color:var(--gold2);background:#fff}
.tbl input[type=checkbox]{width:20px;height:20px;accent-color:var(--navy)}
.tbl td.c{text-align:center;width:78px}
.logtally{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-top:8px}
.logtally b{color:var(--navy)}

.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.box{border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.box label{display:block;font-weight:800;color:var(--navy);font-size:14px;margin-bottom:6px}
.box textarea{width:100%;min-height:74px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;resize:vertical;font-size:15px;background:#FAF8F2}
.top3 li{margin:6px 0}
.top3 input{width:100%;border:0;border-bottom:1.5px dashed var(--line);padding:5px 2px;font-size:15px}
.foot{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:10px;font-size:12px;color:var(--muted)}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);opacity:0;background:var(--good);color:#fff;font-weight:700;padding:10px 20px;border-radius:999px;transition:all .2s;pointer-events:none;z-index:20}
.toast.show{opacity:1;transform:translateX(-50%)}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.4);display:none;align-items:center;justify-content:center;z-index:30;padding:16px}
.modal.open{display:flex}
.modal .card{background:#fff;border-radius:14px;padding:22px;max-width:420px;width:100%}
.modal .card p{margin:0 0 16px}
.modal .row{display:flex;gap:10px;justify-content:flex-end}
.print-only{display:none}

@media (max-width:760px){
  body{font-size:15px}
  .sheet{margin:0;border-radius:0;padding:18px 14px}
  .title h1{font-size:25px}
  .kick{display:none}
  .scorewrap{grid-template-columns:1fr}
  .metrics{grid-template-columns:1fr}
  .week{grid-template-columns:repeat(3,1fr)}
  .rhythm{grid-template-columns:1fr}
  .two{grid-template-columns:1fr}
  .field input{min-width:0;width:100%}
  .meta{width:100%}
  .meta .field{flex:1}
  .why{flex-direction:column;align-items:stretch}
  .logwrap{overflow-x:auto}
  .logwrap .tbl{min-width:640px}
  .apptwrap{overflow-x:auto}
  .apptwrap .tbl{min-width:560px}
}

/* ============ PRINT ============ */
@page{size:letter portrait;margin:0.6in}
@media print{
  html,body{background:#fff;margin:0;padding:0;overflow:visible;width:auto;height:auto}
  body{font-size:12pt}
  .no-print{display:none!important}
  .print-only{display:block}
  .sheet{max-width:none;margin:0;padding:0;box-shadow:none;border-radius:0}
  .head img{height:32px}
  .title{margin:10px 0 4px}
  .title h1{font-size:21pt}
  h2{font-size:13.5pt;margin-bottom:6px}
  h2 .num{width:22px;height:22px;font-size:11pt}
  .why{margin:8px 0 12px;padding:7px 12px}
  .why label,.why input{font-size:12pt}
  section{margin-bottom:13px;break-inside:avoid;page-break-inside:avoid}
  h2{break-after:avoid;page-break-after:avoid}
  .field input{font-size:12pt;padding:4px 8px;min-width:130px}
  .daybadge{padding:5px 10px;font-size:11.5pt}
  .scorewrap{grid-template-columns:1.45in 1fr;gap:10px}
  .ring svg{width:1in;height:1in}
  .ring .msg{display:none}
  .metrics{gap:5px 8px}
  .m{padding:5px 8px 6px}
  .m .name{font-size:11.5pt}
  .m .sub{font-size:9.5pt}
  .m .ctl button{display:none}
  .m .val{font-size:13pt;width:0.75in;padding:2px}
  .m .val.money{width:0.95in}
  .bar{display:none}
  .goal{font-size:9.5pt}
  .m.hit{background:#fff}
  .week{gap:6px}
  .w{padding:5px 8px}
  .w b{font-size:13pt}
  .w span{font-size:9.5pt}
  .rhythm{gap:6px}
  .r{padding:6px 7px}
  .r b{font-size:10.5pt}
  .r span{font-size:9.5pt}
  .r.on{background:#fff}
  .tbl{font-size:11pt}
  .tbl th{font-size:10pt;padding:5px 6px}
  .tbl td{padding:2px 4px;height:0.36in}
  .tbl input[type=text],.tbl select{background:transparent;border:0;padding:2px 3px;font-size:11pt;-webkit-appearance:none;appearance:none}
  .tbl tr{break-inside:avoid;page-break-inside:avoid}
  thead{display:table-header-group}
  .box{padding:8px 12px}
  .box textarea{min-height:0.75in;font-size:11pt;background:#fff;resize:none}
  .top3 input{font-size:11pt;padding:3px 2px}
  .top3 li{margin:3px 0}
  .logpage{break-before:page;page-break-before:always}
  .logtally{display:none}
  .foot{font-size:9pt}
  p{orphans:3;widows:3}
  .m .sub{font-size:0;line-height:1}
  .m .sub .goal{font-size:9.5pt}
  .m .name{font-size:11pt}
  .metrics{gap:4px 8px}
  .m{padding:4px 8px}
  .m .val{font-size:12pt;height:0.3in}
  .r span{display:none}
  .r{align-items:center;padding:6px 8px}
  .r input{margin:0}
  .rhythm{grid-template-columns:repeat(5,1fr)}
  ::placeholder{color:transparent}
  select.empty{color:transparent}
  .blankfld{color:transparent!important}
  input[type=date]::-webkit-calendar-picker-indicator{display:none}
  .box textarea{min-height:0.7in}
  .tbl td{height:0.33in}
  #appts td{height:0.3in}
  .m{padding:4px 8px}
  .m .val{height:0.3in}
  .metrics{gap:4px 8px}
  section{margin-bottom:11px}
  .why{margin:6px 0 10px}
  .title{margin:8px 0 2px}
  .ring svg{width:0.9in;height:0.9in}
  .w span{font-size:9pt;line-height:1.2;display:block}
  .endday{margin-top:14px}
  .w{padding:4px 8px}
}

