@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&display=swap');
:root{--ivory:#F5F3EF;--ivory-alt:#F3F2EE;--sand:#BFB8A2;--sand-light:#D4C9B2;--light-gray:#D0CDC6;--graphite:#3D3D3D;--dark:#141414;--muted:#666;--bison:#45282C;--white:#fff;--success:#5A7A5A;--warning:#A68B4B;--danger:#8B4A4A;--info:#7A8B9A;--font-heading:'Cormorant Garamond',Georgia,serif;--font-body:'Segoe UI',-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;--font-caption:'Segoe UI',-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{margin:0;background:var(--ivory);font-family:var(--font-body);font-size:15px;line-height:1.6;color:var(--graphite)}a{color:inherit}.app{min-height:100vh}.top{position:fixed;inset:0 auto 0 0;width:286px;height:100vh;z-index:1000;display:flex;flex-direction:column;align-items:stretch;gap:0;background:var(--dark);color:var(--ivory);padding:30px 0;border-right:1px solid rgba(207,199,177,.15);overflow:auto}.top:after{content:"";display:block;margin:auto 28px 0;height:34px;background:url('/assets/brand/cast-automation-horizontal-white-on-charcoal.png') left bottom/contain no-repeat;opacity:.78}.title{font-family:var(--font-heading);font-size:22px;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:var(--ivory);padding:0 26px 22px;border-bottom:1px solid rgba(207,199,177,.15);margin-bottom:18px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;line-height:1.1}.building,.bigicon{display:block;width:184px;height:86px;background:url('/assets/brand/alum-logo-white.svg') left center/contain no-repeat;border:0;opacity:.96}.title span:last-child{font-size:10px;letter-spacing:.18em;color:rgba(212,201,178,.72)}.top>.link{display:flex;align-items:center;gap:12px;color:var(--sand-light);text-decoration:none;padding:10px 26px;border-left:2px solid transparent;font-family:var(--font-caption);font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.15em;transition:.2s}.top>.link:before{content:"";width:18px;height:18px;border:1px solid rgba(212,201,178,.48);background:rgba(245,243,239,.04)}.top>.link:hover{color:var(--ivory);background:rgba(245,243,239,.06);border-left-color:var(--sand-light)}.quick,.tinybtn{font-family:var(--font-caption);border:1px solid rgba(212,201,178,.45);background:transparent;color:var(--sand-light);padding:9px 12px;font-size:.63rem;font-weight:600;text-transform:uppercase;letter-spacing:.15em;cursor:pointer}.top>div:last-child{padding:14px 26px}.tabs{position:sticky;top:0;z-index:50;margin-left:286px;min-height:70px;display:flex;align-items:center;gap:0;overflow:auto;background:rgba(245,243,239,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--sand-light);padding:0 34px}.tab,.tablink{white-space:nowrap;text-decoration:none;font-family:var(--font-caption);font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.15em;padding:25px 14px 22px;border-bottom:3px solid transparent;color:var(--muted)}.tab{color:var(--dark);border-bottom-color:var(--bison);background:rgba(212,201,178,.18)}.tablink:hover{color:var(--dark);border-bottom-color:rgba(69,40,44,.35)}.dashboard{margin-left:286px;display:grid;grid-template-columns:repeat(12,1fr);gap:16px;padding:34px 40px 56px;max-width:1680px}.span-3{grid-column:span 3}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-12{grid-column:span 12}.card{background:var(--white);border:1px solid var(--sand-light);border-radius:0;box-shadow:none;min-height:126px;transition:box-shadow .2s}.card:hover{box-shadow:0 2px 12px rgba(61,61,61,.06)}.card.tall{min-height:220px}.head{min-height:58px;border-bottom:1px solid rgba(212,201,178,.75);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;background:var(--white)}.head h2{margin:0;font-family:var(--font-heading);font-size:1.16rem;font-weight:400;letter-spacing:.18em;text-transform:uppercase;color:var(--dark)}.tools{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.72rem;flex-wrap:wrap}.body{padding:20px;overflow-x:auto}.project-row{display:flex;gap:20px;align-items:flex-start;margin-bottom:24px}.project-name{font-family:var(--font-heading);font-size:2.1rem;font-weight:400;letter-spacing:.04em;color:var(--dark);line-height:1.1}.meta,.metricgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.label,.caption{font-family:var(--font-caption);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sand);font-weight:600}.value{font-weight:600;color:var(--graphite)}.metric{border:1px solid rgba(212,201,178,.7);background:var(--ivory-alt);padding:14px}.metric strong,.metric .kpi-value{display:block;font-family:var(--font-heading);font-size:2rem;font-weight:400;letter-spacing:.06em;color:var(--dark);line-height:1}.metric span{display:block;margin-top:6px;font-family:var(--font-caption);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sand);font-weight:600}.modulemap{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.modulemap a{display:block;min-height:120px;background:var(--white);border:1px solid var(--sand-light);border-left:3px solid var(--bison);padding:18px;text-decoration:none;color:var(--graphite);transition:.2s}.modulemap a:before{content:"";display:block;width:30px;height:22px;margin-bottom:16px;background:url('/assets/brand/cast-monogram-logo.svg') left center/contain no-repeat;opacity:.72}.modulemap a:hover{background:var(--ivory-alt);box-shadow:0 2px 12px rgba(61,61,61,.06)}.modulemap strong{display:block;font-family:var(--font-heading);font-size:1.35rem;font-weight:400;letter-spacing:.04em;color:var(--dark);margin-bottom:7px}.modulemap span{font-size:.82rem;color:var(--muted);line-height:1.45}.wide-note,.note{background:rgba(212,201,178,.18);border:1px solid var(--sand-light);border-left:4px solid var(--bison);padding:14px 16px;color:var(--graphite);font-size:.82rem}.compact{margin-top:16px}.empty,.nailed,.insight{min-height:150px;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--muted);padding:22px}.empty h3,.nailed h3,.insight h3{font-family:var(--font-heading);font-size:1.4rem;font-weight:400;color:var(--dark);letter-spacing:.05em;margin:0 0 8px}.emoji{font-size:28px;color:var(--success)}table{width:100%;border-collapse:collapse;background:var(--white);border:1px solid var(--sand-light)}th{background:var(--ivory-alt);padding:14px 16px;text-align:left;font-family:var(--font-caption);font-weight:600;font-size:.65rem;text-transform:uppercase;letter-spacing:.15em;color:var(--sand);border-bottom:1px solid var(--sand-light)}td{padding:14px 16px;border-bottom:1px solid rgba(212,201,178,.5);font-size:.85rem;vertical-align:top}tr:hover td{background:var(--ivory-alt)}.rfi-table{border:0}.dates th,.dates td,.rfi-table th,.rfi-table td{font-size:.82rem}.bad,.neg{color:var(--danger);font-weight:600}.good,.pos,.nextstep{color:var(--success);font-weight:600}.warn{color:var(--warning)}.pill{display:inline-block;padding:4px 10px;border-radius:0;font-family:var(--font-caption);font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;background:rgba(122,139,154,.15);color:var(--info);border:0}.pill.open,.review-pill.critical{background:rgba(139,74,74,.15);color:var(--danger)}.pill.draft,.review-pill.warning{background:rgba(166,139,75,.15);color:var(--warning)}.review-pill.review{background:rgba(122,139,154,.15);color:var(--info)}.timeline{padding:24px}.track{height:1px;background:var(--sand);position:relative;margin:10px 24px 22px}.dot{position:absolute;top:-5px;width:11px;height:11px;border-radius:50%;background:var(--bison)}.dot.left{left:0}.dot.right{right:0}.today{position:absolute;left:57%;top:-12px;height:26px;border-left:2px solid var(--danger)}.footer{border-top:1px solid rgba(212,201,178,.5);padding:12px 16px;color:var(--muted);display:flex;justify-content:space-between;font-size:.72rem}.legend{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:16px;color:var(--muted);font-size:.74rem}.key{display:flex;align-items:center;gap:7px}.sw{width:9px;height:9px}.barrow{display:grid;grid-template-columns:140px 1fr 92px;gap:12px;align-items:center;margin:14px 0}.bar{height:10px;background:var(--ivory-alt);display:flex;overflow:hidden}.seg.red{background:var(--danger)}.seg.yellow{background:var(--warning)}.seg.slate{background:var(--info)}.view{color:var(--bison);text-align:right;font-weight:600;text-decoration:none}.teamrow{border-top:1px solid rgba(212,201,178,.5);padding:13px 0;display:flex;justify-content:space-between;gap:12px}.teamrow:first-child{border-top:0}.role{font-family:var(--font-caption);font-size:.65rem;text-transform:uppercase;letter-spacing:.15em;color:var(--sand);font-weight:600}.person{margin-top:3px;color:var(--graphite)}input,select,textarea{border:1px solid var(--sand-light);border-radius:0;background:var(--white);padding:11px 14px;color:var(--graphite);font:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--graphite)}.controls{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px;margin-bottom:14px}.miniwindow{width:54px;height:34px;border:1px solid var(--sand-light);margin:0 auto 12px;background:var(--ivory-alt)}.source{font-size:.8rem;color:var(--muted);line-height:1.5}.top::-webkit-scrollbar{width:4px}.top::-webkit-scrollbar-thumb{background:rgba(191,184,162,.35)}@media(max-width:1050px){.top{position:relative;width:auto;height:auto;inset:auto;padding:22px}.top:after{display:none}.top>.link{padding:10px 0}.tabs,.dashboard{margin-left:0}.dashboard{grid-template-columns:1fr;padding:22px}.span-3,.span-4,.span-5,.span-6,.span-7,.span-8,.span-12{grid-column:span 1}.modulemap,.meta,.metricgrid{grid-template-columns:1fr}.barrow{grid-template-columns:1fr}.view{text-align:left}.tabs{padding:0 16px}.title{padding:0 0 20px}.controls{grid-template-columns:1fr}}


/* Responsive sheet hardening: keep command/control cards inside the viewport while allowing table content to scroll inside each card. */
.dashboard,.card,.head,.body,.modulemap,.modulemap a,.metricgrid,.controls{min-width:0;max-width:100%;}
.card{overflow:hidden;}
.head{flex-wrap:wrap;}
.head h2,.tools{min-width:0;}
.body{width:100%;}
.modulemap a,.wide-note,.note{overflow-wrap:anywhere;}
@media(max-width:1050px){
  html,body{max-width:100%;overflow-x:hidden;}
  .app{width:100%;max-width:100%;overflow-x:hidden;}
  .dashboard{width:100%;max-width:100%;overflow-x:hidden;padding:18px 14px 44px!important;}
  .card{width:100%;max-width:100%;}
  .head{align-items:flex-start;}
  .head h2{font-size:1rem;line-height:1.25;}
  .tools{justify-content:flex-start;}
  .body{padding:14px;overflow-x:auto;-webkit-overflow-scrolling:touch;}
  table{min-width:680px;}
  .modulemap{grid-template-columns:minmax(0,1fr);}
  .modulemap a{min-height:0;padding:15px;}
  .controls{grid-template-columns:1fr!important;}
}
@media(max-width:520px){
  .dashboard{padding:14px 10px 36px!important;}
  .head{padding:14px;}
  .body{padding:12px;}
  table{min-width:620px;}
}
