/* Visions to Excellence, shared styles.
   Brand colours agreed September 19, 2026: gold #E5C160, teal #3EBFB8, dark teal #17363B. */
:root{
  --gold:#E5C160; --teal:#3EBFB8; --deep:#17363B;
  --ink:#1d2733; --muted:#5b6675; --line:#e3e7ee; --bg:#f6f8fb; --white:#fff;
  --good:#1f8a52; --warn:#c9772a; --bad:#c0392b;
  --wrap:900px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--bg);color:var(--ink);line-height:1.6;
  font-family:"Archivo",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;}
h1,h2,h3{font-family:"Bebas Neue","Archivo",sans-serif;letter-spacing:.5px;color:var(--deep);line-height:1.15;margin:0 0 12px}
h1{font-size:44px}
h2{font-size:30px}
a{color:var(--deep)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:24px 20px 56px}
.card{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:32px;
  box-shadow:0 6px 24px rgba(23,54,59,.06)}
.btn{appearance:none;border:0;cursor:pointer;border-radius:10px;font-weight:700;font-size:16px;
  padding:14px 22px;background:var(--deep);color:#fff;width:100%;transition:.15s}
.btn:hover{background:#0f262a}
.btn.gold{background:var(--gold);color:#3a2d05}
.btn.ghost{background:transparent;color:var(--deep);border:1px solid var(--line);font-weight:600}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.row{display:flex;gap:12px}
.row .btn{width:auto;flex:1}
.center{text-align:center}
.small{font-size:13px;color:var(--muted)}
.field{width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:10px;font-size:15px;margin:8px 0}
.field:focus{outline:none;border-color:var(--teal)}
.consent{border:1px solid var(--line);border-radius:10px;padding:14px;margin:12px 0;background:#fbfcfe}
.consent label{display:flex;gap:10px;align-items:flex-start;font-size:14px;margin-bottom:8px}
.hide{display:none}
.hp{position:absolute;left:-9999px}
.progress{height:8px;background:var(--line);border-radius:99px;overflow:hidden;margin:6px 0 26px}
.bar{height:100%;background:linear-gradient(90deg,var(--gold),#efd58c);width:0;transition:width .3s}
.qcount{color:var(--teal);font-weight:800;letter-spacing:.5px;font-size:13px;text-transform:uppercase}
.opts{display:flex;flex-direction:column;gap:10px;margin:18px 0 26px}
.opt{border:1.5px solid var(--line);border-radius:11px;padding:14px 16px;cursor:pointer;background:#fff}
.opt:hover{border-color:var(--gold);background:#fffdf5}
.opt.sel{border-color:var(--gold);background:#fdf6e3}
.ring{width:170px;height:170px;border-radius:50%;margin:6px auto 14px;position:relative}
.ring .inner{position:absolute;inset:14px;border-radius:50%;background:var(--deep);color:#fff;
  display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring .num{font-size:46px;font-weight:700;line-height:1;font-family:"Bebas Neue",sans-serif}
.leak{border-left:4px solid var(--gold);background:#fbfaf4;border-radius:0 10px 10px 0;padding:12px 16px;margin-bottom:10px}
.leak h4{margin:0 0 4px;color:var(--deep);font-size:15px}
.leak p{margin:0;font-size:14px;color:var(--muted)}
.cta{background:linear-gradient(135deg,var(--deep),#1f4d53);color:#fff;border-radius:14px;padding:26px;margin-top:24px;text-align:center}
.cta h3{color:#fff}
@media (max-width:640px){h1{font-size:34px}.card{padding:22px}.wrap{padding:16px 16px 40px}}
@media print{.btn,.cta .btn{display:none}.card{box-shadow:none;border:none}}

/* ------------------------------------------------------------------------------------------
   Site layout, added September 25, 2026 for the first full build: header, navigation,
   sections, grids, video cards, forms, and footer. The scorecard styles above are unchanged.
   ------------------------------------------------------------------------------------------ */
.wide{max-width:1120px;margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-9999px;top:0;background:var(--gold);color:#3a2d05;padding:10px 14px;z-index:99}
.skip:focus{left:12px;top:12px}

/* Header and navigation */
.site-header{background:var(--deep);position:sticky;top:0;z-index:50;box-shadow:0 2px 12px rgba(0,0,0,.18)}
.site-header .wide{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px}
.brand img{height:46px;width:auto;display:block}
.nav{display:flex;align-items:center;gap:4px;list-style:none;margin:0;padding:0}
.nav>li{position:relative}
.nav a{color:#fff;text-decoration:none;font-weight:600;font-size:15px;padding:10px 12px;border-radius:8px;display:block}
.nav a:hover,.nav a[aria-current=page]{color:var(--gold)}
.nav .sub{display:none;position:absolute;left:0;top:100%;background:#fff;min-width:260px;list-style:none;margin:0;padding:8px;
  border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.18)}
.nav .sub a{color:var(--deep);font-weight:500}
.nav .sub a:hover{background:#f3f7f7;color:var(--deep)}
.nav>li:hover>.sub,.nav>li:focus-within>.sub{display:block}
.nav .cta-link a{background:var(--gold);color:#3a2d05;margin-left:6px}
.nav .cta-link a:hover{color:#3a2d05;background:#efd58c}
.menu-btn{display:none;background:none;border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:8px;padding:8px 12px;font-size:15px;cursor:pointer}
@media (max-width:900px){
  .menu-btn{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:72px;background:var(--deep);flex-direction:column;align-items:stretch;padding:8px 16px 16px}
  .nav.open{display:flex}
  .nav .sub{display:block;position:static;box-shadow:none;background:transparent;padding:0 0 0 14px;min-width:0}
  .nav .sub a{color:#cfe9e7}
  .nav .cta-link a{margin:8px 0 0;text-align:center}
}

/* Page sections */
.hero{background:linear-gradient(135deg,var(--deep),#1f4d53);color:#fff;padding:72px 0 64px}
.hero h1{color:#fff;font-size:56px;margin-bottom:14px}
.hero .eyebrow{color:var(--gold);font-weight:800;letter-spacing:2px;text-transform:uppercase;font-size:13px;margin:0 0 10px}
.hero p.lead{font-size:20px;max-width:720px;color:#e6f2f1}
.hero .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.hero .actions .btn{width:auto}
a.btn{display:inline-block;text-decoration:none;text-align:center}
.btn.teal{background:var(--teal);color:#0d2b2e}
.btn.outline-light{background:transparent;border:1.5px solid rgba(255,255,255,.6);color:#fff}
.section{padding:56px 0}
.section.alt{background:#fff}
.section.dark{background:var(--deep);color:#e6f2f1}
.section.dark h2,.section.dark h3{color:#fff}
.section h2{font-size:38px}
.section .intro{max-width:760px;font-size:18px;color:var(--muted)}
.section.dark .intro{color:#cfe9e7}
.grid{display:grid;gap:20px}
.grid.two{grid-template-columns:repeat(2,1fr)}
.grid.three{grid-template-columns:repeat(3,1fr)}
.grid.four{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.grid.three,.grid.four{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.grid.two,.grid.three,.grid.four{grid-template-columns:1fr}.hero h1{font-size:40px}.section h2{font-size:30px}}
.tile{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px}
.section.alt .tile{background:var(--bg)}
.tile h3{font-size:24px;margin-bottom:6px}
.tile p{margin:0;color:var(--muted)}
.tile .letter{font-family:"Bebas Neue",sans-serif;font-size:40px;color:var(--gold);line-height:1}
.tile a.more{display:inline-block;margin-top:10px;font-weight:700;color:var(--deep)}
.split{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:start}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.portrait{width:100%;max-width:380px;border-radius:16px;box-shadow:0 10px 30px rgba(23,54,59,.18)}
.quote{background:#fff;border-left:5px solid var(--gold);border-radius:0 14px 14px 0;padding:24px 28px;font-size:17px}
.quote footer{display:flex;align-items:center;gap:12px;margin-top:14px;font-weight:700;color:var(--deep)}
.quote footer img{width:52px;height:52px;border-radius:50%;object-fit:cover}
.pullquote{font-size:24px;line-height:1.45;color:var(--deep);border-left:5px solid var(--teal);padding:6px 0 6px 22px;margin:28px 0}
.section.dark .pullquote{color:#fff}
.badges{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.badges img{height:84px;width:auto}
.checklist{list-style:none;padding:0;margin:0}
.checklist li{padding:8px 0 8px 30px;position:relative}
.checklist li:before{content:"";position:absolute;left:0;top:13px;width:16px;height:16px;border-radius:4px;border:2px solid var(--teal)}
table.plain{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden}
table.plain th,table.plain td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}
table.plain th{background:var(--deep);color:#fff;font-weight:600}
.notice{background:#fff7e0;border:1px solid #f0d98c;border-radius:10px;padding:12px 16px;font-size:14px;color:#6b5310;margin:0 0 20px}
.prose{max-width:780px}
.prose h2{font-size:30px;margin-top:34px}
.prose h3{font-size:22px;margin-top:24px}

/* Days of the seminar */
.day{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px;position:relative}
.day .num{font-family:"Bebas Neue",sans-serif;color:var(--teal);font-size:18px;letter-spacing:1px}
.day h3{font-size:28px;margin:2px 0 8px}
.day .builds{font-weight:700;color:var(--deep)}
.day ul{margin:10px 0 0;padding-left:18px;color:var(--muted)}

/* Videos */
.video{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}
.video .frame{position:relative;aspect-ratio:16/9;background:#0f262a;cursor:pointer}
.video .frame img{width:100%;height:100%;object-fit:cover;display:block;opacity:.9}
.video .frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;
  background:rgba(229,193,96,.95);border:0;cursor:pointer}
.video .play:after{content:"";position:absolute;left:26px;top:20px;border-left:18px solid #3a2d05;border-top:12px solid transparent;border-bottom:12px solid transparent}
.video .body{padding:14px 16px}
.video h3{font-family:"Archivo",sans-serif;font-size:16px;font-weight:700;letter-spacing:0;margin:0 0 4px}
.video .meta{font-size:13px;color:var(--muted)}

/* Forms on content pages */
.form-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:0 6px 24px rgba(23,54,59,.06)}
.form-card label.lbl{display:block;font-weight:600;font-size:14px;margin-top:10px}
.form-card textarea.field{min-height:120px;resize:vertical;font-family:inherit}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:640px){.form-row{grid-template-columns:1fr}}
.form-error{color:var(--bad);font-size:14px;min-height:20px}
.thanks{text-align:center;padding:10px 0}

/* Footer */
.site-footer{background:#0f262a;color:#b9d3d1;padding:48px 0 28px;font-size:15px}
.site-footer a{color:#e6f2f1}
.site-footer .cols{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:32px}
@media (max-width:800px){.site-footer .cols{grid-template-columns:1fr}}
.site-footer h4{color:var(--gold);font-family:"Bebas Neue",sans-serif;font-size:22px;letter-spacing:1px;margin:0 0 10px;font-weight:400}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin:6px 0}
.site-footer .legal{border-top:1px solid rgba(255,255,255,.12);margin-top:32px;padding-top:18px;font-size:13px;color:#8fb0ad}
.site-footer .badges img{height:64px;background:#fff;border-radius:8px;padding:4px}

/* ------------------------------------------------------------------------------------------
   Round 2 fixes, September 26, 2026, after the first review of the deployed site.
   ------------------------------------------------------------------------------------------ */
/* Buttons: every button has the same border width, so solid and outlined buttons line up. */
.btn{border:1.5px solid transparent;line-height:1.2}
a.btn{display:inline-flex;align-items:center;justify-content:center}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.actions.center{justify-content:center}
.actions .btn{width:auto}
/* Quotes: remove the browser's default indent so quotes line up with the text around them. */
blockquote.quote,blockquote.pullquote{margin-left:0;margin-right:0}
/* Plain list without the checkbox squares (contact details). */
.plainlist{list-style:none;padding:0;margin:0}
.plainlist li{padding:6px 0}
.plainlist strong{display:inline-block;min-width:64px;color:var(--deep)}
/* Badges: same box for both, whatever the shape of the image. */
.badges img{width:84px;height:84px;object-fit:contain}
.site-footer .badges img{width:64px;height:64px;padding:6px}
/* Portrait: a steady 4 by 5 frame, held in view beside long text. */
.portrait{aspect-ratio:4/5;height:auto;width:100%;object-fit:cover;object-position:50% 18%;max-width:360px;display:block;margin-left:auto}
.split .sticky{position:sticky;top:96px}
@media (max-width:900px){.portrait{margin:0 auto}.split .sticky{position:static}}
.split.middle{align-items:center}
table.plain tr:last-child td{border-bottom:0}
/* Home page hero with the background video carried over from the Wix site. */
.hero.has-video{position:relative;overflow:hidden;padding:110px 0 100px}
.hero.has-video video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero.has-video:before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(15,38,42,.92) 0%,rgba(15,38,42,.75) 45%,rgba(15,38,42,.25) 100%)}
.hero.has-video .wide{position:relative;z-index:2}
.hero.has-video h1{max-width:760px}
@media (max-width:640px){.hero.has-video:before{background:rgba(15,38,42,.78)}}
@media (prefers-reduced-motion:reduce){.hero.has-video video{display:none}.hero.has-video{background:#17363B url(/assets/video/home-hero-poster.jpg) center/cover}}

/* ------------------------------------------------------------------------------------------
   Round 3, September 26, 2026: blog, footer badges, workshop page layout.
   ------------------------------------------------------------------------------------------ */
/* Footer badges sit directly on the dark footer, as they did on Wix. No white boxes. */
.site-footer .badges img{background:none;padding:0;border-radius:0;width:72px;height:72px}
/* Blog list */
.post-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;text-decoration:none;color:var(--ink);transition:.15s}
.post-card:hover{box-shadow:0 10px 28px rgba(23,54,59,.12);transform:translateY(-2px)}
.post-card img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.post-card .body{padding:18px 20px 22px}
.post-card h3{font-size:24px;margin:4px 0 8px}
.post-card p{margin:0;color:var(--muted);font-size:15px}
.post-card .small{margin:0}
/* Blog post */
.post-wrap{max-width:780px}
.post h1{font-size:48px;margin:6px 0 8px}
.post-cover{width:100%;height:auto;border-radius:14px;margin:18px 0 0;display:block}
.post .prose{font-size:18px}
.post .prose h2{font-size:32px}.post .prose h3{font-size:26px}.post .prose h4{font-size:22px}
.post .prose blockquote{border-left:5px solid var(--teal);margin:24px 0;padding:4px 0 4px 20px;font-size:21px;color:var(--deep)}
.post .prose hr{border:0;border-top:1px solid var(--line);margin:34px 0}
.post .prose .actions .btn{width:auto}
@media (max-width:640px){.post h1{font-size:36px}.post .prose{font-size:17px}}
/* Workshop page: the opening section as a single column, table full width, one line per row. */
.stack{max-width:900px}
.stack .pullquote{margin:18px 0}
.stack table.plain{margin-top:22px}
@media (min-width:760px){.stack table.plain td,.stack table.plain th{white-space:nowrap}}
.post .section{background:#fff}

/* ------------------------------------------------------------------------------------------
   Calculators (True Cost Per Hour draft), September 26, 2026.
   ------------------------------------------------------------------------------------------ */
.draft-flag{display:inline-block;background:#fff7e0;border:1px solid #f0d98c;color:#6b5310;border-radius:99px;padding:3px 12px;font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}
.calc{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:28px;align-items:start}
@media (max-width:980px){.calc{grid-template-columns:minmax(0,1fr)}}
.calc-inputs .panel,.calc-results .panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px 22px;margin-bottom:18px}
.calc-inputs h3,.calc-results h3{font-size:22px;margin-bottom:4px}
.calc-inputs .small{margin:2px 0 10px}
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}
@media (max-width:560px){.fgrid{grid-template-columns:1fr}}
.fgrid label{font-size:14px;font-weight:600;color:var(--deep)}
.field.sm{padding:8px 9px;font-size:14px;margin:4px 0}
.field.num{text-align:right}
.table-scroll{overflow-x:auto;margin:0 -4px}
#crew{width:100%;border-collapse:collapse;min-width:720px}
#crew th{font-size:12px;text-align:left;color:var(--muted);font-weight:600;padding:4px;vertical-align:bottom}
#crew td{padding:2px 4px}
#crew td:first-child input{min-width:130px}
.linkbtn{background:none;border:0;color:var(--muted);cursor:pointer;font-size:13px;text-decoration:underline}
.calc-results{position:sticky;top:90px}
@media (max-width:980px){.calc-results{position:static}}
.big-num{font-family:"Bebas Neue",sans-serif;font-size:56px;color:var(--deep);line-height:1}
.big-num.gold{color:#b88f22}
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:6px 0 10px}
.kpis .lbl{font-size:13px;color:var(--muted);font-weight:600}
.role-res{padding:12px 0;border-top:1px solid var(--line)}
.role-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:6px;font-size:15px}
.stack-bar{display:flex;height:16px;border-radius:99px;overflow:hidden;background:var(--line);margin-bottom:6px}
.stack-bar span{display:block;height:100%}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-top:6px}
.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.gap-note{background:#fbfaf4;border-left:4px solid var(--gold);padding:10px 14px;border-radius:0 10px 10px 0;font-size:15px;margin-top:12px}

/* ------------------------------------------------------------------------------------------
   Overview panel (shadow site only), September 26, 2026. Layout follows Hakim's sketch:
   Main Review Pane and Library on the left, Completed and Upcoming Tasks on the right.
   ------------------------------------------------------------------------------------------ */
.ov-fab{position:fixed;right:20px;bottom:20px;z-index:90;border:0;border-radius:99px;padding:13px 20px;font-weight:700;font-size:15px;
  background:var(--deep);color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.25);cursor:pointer;font-family:inherit}
.ov-fab:hover{background:#0f262a}
.ov-fab:before{content:"";display:inline-block;width:10px;height:10px;background:var(--gold);border-radius:2px;margin-right:9px;box-shadow:12px 0 0 var(--teal),0 -0 0 var(--gold)}
.ov{position:fixed;inset:0;z-index:100;background:#eef2f4;display:flex;flex-direction:column;font-size:14px}
.ov.hide{display:none}
.ov-top{display:flex;justify-content:space-between;align-items:center;background:var(--deep);color:#fff;padding:10px 18px}
.ov-top span{color:var(--gold);margin-left:8px}
.ov-x{background:none;border:0;color:#fff;font-size:30px;line-height:1;cursor:pointer;padding:0 6px}
.ov-grid{flex:1;min-height:0;display:flex;padding:14px;--ov-left:58%;--ov-lib:150px;--ov-done:50%}
.ov-grid.resizing{user-select:none}
.ov-grid.resizing iframe{pointer-events:none}
.ov-col{display:flex;flex-direction:column;min-width:0;min-height:0}
.ov-left{flex:0 0 var(--ov-left)}
.ov-right{flex:1 1 0}
.ov-main{flex:1 1 auto}
.ov-lib{flex:0 0 var(--ov-lib)}
.ov-done{flex:0 0 var(--ov-done)}
.ov-todo{flex:1 1 0}
.ov-gut{flex:0 0 14px;position:relative}
.ov-gut.v{cursor:col-resize}.ov-gut.h{cursor:row-resize}
.ov-gut:before{content:"";position:absolute;border-radius:2px;background:#cfd8dc;transition:background .15s}
.ov-gut.v:before{left:6px;top:30%;bottom:30%;width:2px}
.ov-gut.h:before{top:6px;left:35%;right:35%;height:2px}
.ov-gut:hover:before,.ov-grid.resizing .ov-gut:before{background:var(--teal)}
.ov-win{background:#fff;border:1px solid #cfd8dc;border-radius:12px;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.ov-win header{display:flex;align-items:center;gap:10px;background:#1a5a78;color:#fff;padding:8px 14px}
.ov-win h2{font-family:"Archivo",sans-serif;font-size:14px;font-weight:700;letter-spacing:.3px;color:#fff;margin:0}
.ov-cur{flex:1;opacity:.8;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.ov-open{color:#fff;font-size:12px}
.ov-filter{margin-left:auto;font-size:12px;display:flex;gap:6px;align-items:center}
.ov-main iframe{flex:1;width:100%;border:0;background:#fff}
.ov-body{flex:1;overflow:auto;padding:4px 14px}
.ov-list{list-style:none;margin:0;padding:0}
.ov-list li{padding:9px 0;border-bottom:1px solid #edf0f2}
.ov-list p{margin:3px 0 0;line-height:1.4}
.ov-date{display:inline-block;min-width:88px;font-size:12px;color:var(--muted);font-weight:600}
.ov-kind{display:inline-block;font-size:11px;font-weight:700;border-radius:99px;padding:1px 8px;background:#e7f6f5;color:#1f6f6a}
.ov-kind.k-decided{background:#fdf6e3;color:#7a5b0c}.ov-kind.k-checked{background:#eef1f6;color:#3d4b61}.ov-kind.k-corrected{background:#fdecea;color:#9a2b1f}
.ov-lib li{cursor:pointer;border-radius:8px;padding:8px}
.ov-lib li:hover,.ov-lib li.on{background:#eaf6f5}
.ov-lib li p{color:var(--muted);font-size:13px}
.ov-add{display:flex;gap:6px;padding:10px 14px;border-bottom:1px solid #edf0f2}
.ov-add input,.ov-add select,.ov-todo li input,.ov-todo li select{font:inherit;border:1px solid #cfd8dc;border-radius:6px;padding:6px 7px}
.ov-add input[name=t]{flex:1;min-width:0}
.ov-add button{background:var(--gold);border:0;border-radius:6px;padding:6px 14px;font-weight:700;cursor:pointer}
.ov-todo li{display:grid;grid-template-columns:128px minmax(0,1fr) 52px 30px 30px;gap:6px;align-items:center;border-left:4px solid #cfd8dc;padding-left:8px}
.ov-todo li.p1{border-left-color:var(--bad)}.ov-todo li.p2{border-left-color:var(--gold)}.ov-todo li.p3{border-left-color:var(--teal)}
.ov-todo li p{margin:0;outline:none;border-radius:4px;padding:3px}
.ov-todo li p:focus{background:#fffdf5;box-shadow:0 0 0 1px var(--gold)}
.ov-todo li button{background:none;border:1px solid #cfd8dc;border-radius:6px;cursor:pointer;height:30px}
.ov-msg{color:var(--muted);font-size:13px}
@media (max-width:900px){.ov-grid{flex-direction:column;overflow:auto}.ov-left,.ov-right{flex:0 0 auto}.ov-main{height:60vh;flex:none}.ov-gut{display:none}
  .ov-win{min-height:260px;margin-bottom:12px}}

/* Calculator, version 2 (September 26, 2026): resizable columns, tooltips, notes, drag rows. */
.wide-calc{max-width:1320px}
.calc{--left:60%;display:grid;grid-template-columns:minmax(0,var(--left)) 14px minmax(0,1fr);gap:0 10px;align-items:start}
.calc-split{align-self:stretch;cursor:col-resize;position:relative;min-height:200px}
.calc-split:before{content:"";position:absolute;left:6px;top:0;bottom:0;width:2px;border-radius:2px;background:var(--line);transition:background .15s}
.calc-split:hover:before,.calc.resizing .calc-split:before{background:var(--teal)}
.calc.resizing{user-select:none}
@media (max-width:980px){.calc{grid-template-columns:minmax(0,1fr)}.calc-split{display:none}}
.panel-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.fgrid.four{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}
@media (max-width:760px){.fgrid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fgrid label{display:flex;flex-direction:column;justify-content:flex-end}
.fgrid label>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Tooltips on labels */
.has-tip{position:relative;cursor:help;border-bottom:1px dotted #9fb3b6}
.table-scroll{overflow-x:auto}
/* Crew rows */
#crew{min-width:760px}
#crew th.c,#crew td.c{text-align:center}
#crew td.c input{width:18px;height:18px;accent-color:var(--teal)}
#crew td.grip{cursor:grab;color:#9fb3b6;font-size:18px;width:22px;text-align:center;user-select:none}
#crew tr.dragging{opacity:.45;background:#eaf6f5}
#crew td.acts{white-space:nowrap}
#crew td.acts .linkbtn{margin-right:6px}
.role-wrap{position:relative}
.role-wrap .note-flag{display:none;position:absolute;top:4px;right:0;width:0;height:0;padding:0;border:0;background:none;cursor:pointer;
  border-top:14px solid var(--gold);border-left:14px solid transparent;border-top-right-radius:9px}
.role-wrap.has-note .note-flag{display:block}
.by-role{font-family:"Archivo",sans-serif;font-size:13px;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);margin:14px 0 0}
/* Note modal */
.modal{position:fixed;inset:0;z-index:120;background:rgba(15,38,42,.55);display:flex;align-items:center;justify-content:center;padding:20px}
.modal.hide{display:none}
.modal-box{background:#fff;border-radius:14px;padding:24px;width:min(520px,100%);box-shadow:0 20px 60px rgba(0,0,0,.3)}
.modal-box h3{font-size:24px}
.modal-box textarea{min-height:140px;font-family:inherit;resize:vertical}
.modal-box .actions .btn{width:auto}
#crew{min-width:760px}
#crew td:nth-child(2){min-width:150px}
.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
.kpis .lbl{overflow-wrap:anywhere}
@media (max-width:560px){.big-num{font-size:42px}}
.tipbox{position:fixed;z-index:200;max-width:280px;background:var(--deep);color:#fff;font-size:13px;line-height:1.45;padding:10px 12px;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.22);pointer-events:none}
.tipbox.hide{display:none}
/* Overview: back, forward, reload and start buttons for the Main Review Pane */
.ov-nav{display:flex;gap:4px;flex:none}
.ov-nav button{width:28px;height:26px;padding:0;border:1px solid rgba(255,255,255,.45);border-radius:5px;background:transparent;color:#fff;font-size:17px;line-height:1;cursor:pointer}
.ov-nav button:hover:not(:disabled){background:rgba(255,255,255,.15)}
.ov-nav button:disabled{opacity:.35;cursor:default}

/* Home hero: keep Doreen's head in view on wide screens.
   The video is 16:9, but on a wide screen the hero band is much wider than it is tall, so "cover"
   scales the video up and crops the top and bottom equally, which cut off her head. Anchoring the
   crop near the top, and letting the band grow a little on wide screens, keeps her face in frame. */
.hero.has-video{min-height:min(640px,42vw);display:flex;align-items:center}
.hero.has-video .wide{width:100%}
.hero.has-video video{object-position:50% 6%}
@media (prefers-reduced-motion:reduce){.hero.has-video{background-position:50% 6%}}
/* Calculator crew table: wider number boxes so values like 6,000 are never cut off */
#crew{min-width:900px}
#crew td input.num{min-width:72px}
#crew td:nth-child(3) input.num{min-width:56px}
#crew td:nth-child(4) input.num,#crew td:nth-child(5) input.num,#crew td:nth-child(6) input.num{min-width:78px}
#crew td:nth-child(7) input.num,#crew td:nth-child(8) input.num{min-width:92px}
/* Overview: the Done button on each upcoming task, and the "Task done" label in Completed Tasks */
.ov-todo li{grid-template-columns:128px minmax(0,1fr) 52px 62px 30px}
.ov-todo li button.ov-ok{width:auto;min-width:54px;padding:4px 10px;border:0;border-radius:6px;background:var(--teal,#3EBFB8);color:#0f2a2d;font-weight:700;font-size:12px;cursor:pointer}
.ov-todo li button.ov-ok:hover{filter:brightness(.95)}
.ov-todo li button.ov-ok:disabled{opacity:.6;cursor:default}
.ov-kind.k-task-done{background:#e3f4e8;color:#1d6b37}

/* Contact page, redesigned October 10, 2026: shorter header, wider form, fuller left column */
.hero.compact{padding:40px 0 34px}
.hero.compact h1{font-size:46px;margin-bottom:8px}
.hero.compact p.lead{font-size:18px;margin:0}
.contact-section{padding:40px 0 48px}
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:36px;align-items:start}
.contact-side .who{display:flex;gap:18px;align-items:center;margin-bottom:14px}
.contact-side .who img{width:110px;height:140px;object-fit:cover;object-position:50% 15%;border-radius:12px;flex:none}
.contact-side .who h2{font-size:32px;margin:0 0 4px}
.contact-side .who p{margin:0;color:var(--muted);font-size:15px}
.contact-side h3{font-size:24px;margin:22px 0 8px}
.next-steps{margin:0 0 12px;padding-left:20px}
.next-steps li{padding:4px 0}
.contact-side .badges{margin-top:14px}
.contact-side .badges img{width:72px;height:72px}
.form-card .form-title{font-size:26px;margin:0 0 2px}
.contact-section .form-card{padding:24px 26px}
.contact-section .form-card textarea.field{min-height:84px}
.contact-section .consent p.small{font-size:12px;line-height:1.5}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}.contact-side{order:2}}
@media (max-width:640px){.hero.compact h1{font-size:36px}.contact-section .form-row{grid-template-columns:1fr}}
.contact-section .form-error:empty{margin:0;min-height:0}
.contact-section .consent{margin-bottom:14px}

/* Overview sort menus (October 10, 2026) */
.ov-sortlab{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:12px;color:#e6f2f1}
.ov-sort{font:inherit;font-size:12px;border:1px solid rgba(255,255,255,.4);border-radius:6px;padding:3px 6px;background:#fff;color:#1d2733}
