:root{
  --navy:#0b1f3a;
  --navy-deep:#071427;
  --blue:#1e59ae;
  --blue-deep:#164486;
  --silver:#a9afb3;
  --mist:#eef1f4;
  --mist-deep:#dfe4e9;
  --white:#ffffff;
  --ink:#0b1f3a;
  --soft:#5a636b;
  --port:#c8362b;
  --starboard:#1b7f4b;
  --sun:#d6a419;
  --shadow:0 18px 45px rgba(11,31,58,.16);
  --radius:5px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--mist);color:var(--ink);font-family:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.45}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:var(--blue)}
[hidden]{display:none!important}
.eyebrow{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.24em;font-size:.73rem;font-weight:600;color:var(--silver)}

/* auth */
.auth-screen{min-height:100vh;display:grid;place-items:center;padding:2rem;background:linear-gradient(145deg,var(--navy-deep),var(--navy) 62%,var(--blue-deep))}
.auth-card{width:min(520px,100%);background:var(--white);border-top:5px solid var(--blue);box-shadow:var(--shadow);padding:2.5rem;text-align:center;border-radius:var(--radius)}
.auth-burgee{display:block;width:170px;max-height:100px;object-fit:contain;margin:0 auto 1.4rem}
.auth-card h1{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.04em;font-weight:600;font-size:clamp(2.4rem,7vw,3.6rem);line-height:.95;margin:.45rem 0 1rem;color:var(--navy)}
.auth-card p{color:var(--soft);margin:0 auto 1.5rem;max-width:42ch}
.auth-note{font-size:.86rem;margin-top:1.2rem!important}
.public-link{display:inline-block;font-size:.85rem;text-transform:uppercase;letter-spacing:.09em;font-family:"Barlow Condensed",sans-serif}

/* header */
.app-header{background:var(--navy);color:#fff;position:sticky;top:0;z-index:20;box-shadow:0 2px 12px rgba(0,0,0,.12)}
.header-inner{max-width:1240px;margin:0 auto;padding:1.15rem 1.5rem .8rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.brand-block{display:flex;align-items:center;gap:1rem;min-width:0}
.brand-burgee{width:94px;height:56px;object-fit:contain;flex:none}
.brand-title{font-family:"Barlow Condensed",sans-serif;font-size:1.8rem;text-transform:uppercase;letter-spacing:.035em;font-weight:700;line-height:1}
.brand-title span{color:var(--silver);font-weight:500}
.brand-subtitle{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.14em;color:var(--silver);font-size:.72rem;margin-top:.35rem}
.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.65rem;flex-wrap:wrap}
.user-email,.save-state{font-family:"Barlow Condensed",sans-serif;font-size:.78rem;letter-spacing:.06em;color:var(--silver)}
.save-state.error{color:#ffaaa3}
.header-button{border:1px solid #2d4d78;background:transparent;color:#dce4ef;padding:.48rem .72rem;border-radius:3px;text-transform:uppercase;letter-spacing:.08em;font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:.74rem}
.header-button:hover{background:#17365f}
.brand-stripe{display:flex;height:4px;max-width:1240px;margin:0 auto}
.brand-stripe span:nth-child(1){width:29%;background:var(--blue)}
.brand-stripe span:nth-child(2){width:10%;background:var(--silver)}
.brand-stripe span:nth-child(3){flex:1;background:transparent}
.main-nav{background:var(--navy)}
.nav-inner{max-width:1240px;margin:0 auto;padding:0 1.5rem;display:flex;gap:.25rem;overflow:auto}
.nav-button{border:0;background:transparent;color:var(--silver);padding:.78rem 1rem;text-transform:uppercase;letter-spacing:.08em;font-family:"Barlow Condensed",sans-serif;font-weight:600;white-space:nowrap;border-radius:3px 3px 0 0}
.nav-button:hover{color:#fff;background:#122e53}
.nav-button.active{background:var(--mist);color:var(--navy)}

/* layout */
.main-content{max-width:1240px;margin:0 auto;padding:1.7rem 1.5rem 4rem;outline:none}
.loading-card,.empty-card{background:#fff;border:1px solid var(--mist-deep);border-radius:var(--radius);padding:3rem;text-align:center;color:var(--soft)}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}
.page-title{margin:0;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.04em;font-size:2rem;line-height:1;color:var(--navy)}
.page-kicker{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-weight:600;color:var(--silver);margin-bottom:.32rem}
.page-actions{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap}
.card{background:#fff;border:1px solid var(--mist-deep);border-radius:var(--radius);padding:1.1rem}
.card.flush{padding:0;overflow:hidden}
.card-title{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.13em;color:var(--silver);font-size:.72rem;font-weight:700;margin-bottom:.65rem}
.card-subtitle{font-size:.85rem;color:var(--soft);margin-top:-.35rem;margin-bottom:1rem}
.grid{display:grid;gap:1rem}
.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:1rem}
.two-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:1rem}
.stat-value{font-family:"Barlow Condensed",sans-serif;font-size:2.8rem;line-height:.9;font-weight:600;color:var(--navy)}
.stat-value.blue{color:var(--blue)}
.stat-value.red{color:var(--port)}
.stat-value.green{color:var(--starboard)}
.stat-note{font-size:.82rem;color:var(--soft);margin-top:.55rem}
.warning-card{border-left:4px solid var(--port);margin-bottom:1rem}
.warning-card h3{margin:0 0 .5rem;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.1em;color:var(--port)}
.warning-card ul{margin:.2rem 0 0;padding-left:1.2rem;color:var(--soft)}

/* charts */
.bar-chart{display:flex;align-items:flex-end;gap:.65rem;height:175px;padding-top:1rem}
.bar-group{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-width:35px}
.bar-number{font-family:"Barlow Condensed",sans-serif;font-size:1.25rem;color:var(--navy);font-weight:600;margin-bottom:.3rem}
.bar{width:100%;max-width:70px;min-height:5px;background:var(--blue);border-radius:3px 3px 0 0}
.bar.departing{background:var(--port)}
.bar-label{font-family:"Barlow Condensed",sans-serif;font-size:.75rem;text-transform:uppercase;color:var(--soft);font-weight:600;margin-top:.35rem}
.funnel{display:grid;gap:.48rem}
.funnel-row{display:grid;grid-template-columns:105px 1fr 28px;align-items:center;gap:.65rem}
.funnel-label{font-family:"Barlow Condensed",sans-serif;font-size:.78rem;color:var(--soft);font-weight:600}
.funnel-track{height:17px;background:var(--mist);border-radius:2px;overflow:hidden}
.funnel-fill{height:100%;background:var(--blue);min-width:0}
.funnel-fill.won{background:var(--starboard)}
.funnel-count{font-family:"Barlow Condensed",sans-serif;font-weight:700;text-align:right}

/* controls and tables */
.button{border:1px solid transparent;border-radius:3px;padding:.63rem .9rem;text-transform:uppercase;letter-spacing:.07em;font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:.78rem}
.button-primary{background:var(--blue);color:#fff}
.button-primary:hover{background:var(--blue-deep)}
.button-dark{background:var(--navy);color:#fff}
.button-dark:hover{background:#14365f}
.button-ghost{background:#fff;color:var(--blue);border-color:var(--mist-deep)}
.button-ghost:hover{background:var(--mist)}
.button-danger{background:#fff;color:var(--port);border-color:#efd0cd}
.button-small{padding:.43rem .68rem;font-size:.7rem}
.filters{display:flex;gap:.55rem;flex-wrap:wrap;margin-bottom:1rem}
.input,.select,.textarea{width:100%;border:1px solid var(--mist-deep);border-radius:3px;background:#fff;color:var(--ink);padding:.58rem .66rem;outline:none}
.input:focus,.select:focus,.textarea:focus{border-color:var(--blue);box-shadow:0 0 0 2px rgba(30,89,174,.12)}
.filters .input{width:min(300px,100%)}
.filters .select{width:170px}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;font-size:.88rem}
th{text-align:left;background:var(--mist);color:#68737c;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;padding:.72rem .75rem;white-space:nowrap}
td{padding:.72rem .75rem;border-top:1px solid var(--mist);vertical-align:top;color:var(--soft)}
td strong{color:var(--navy)}
tbody tr.clickable{cursor:pointer}
tbody tr.clickable:hover{background:#f4f7fa}
.cell-truncate{max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chip{display:inline-block;border-radius:3px;padding:.2rem .43rem;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.035em;font-size:.68rem;font-weight:700;white-space:nowrap;background:var(--mist);color:var(--navy)}
.chip.red{background:#fae6e4;color:var(--port)}
.chip.green{background:#e3f1e8;color:var(--starboard)}
.chip.blue{background:#e7eef9;color:var(--blue-deep)}
.chip.gold{background:#fbf2dc;color:#876609}
.deadline.overdue{color:var(--port);font-weight:700}
.list-stack{display:grid;gap:.55rem}
.list-item{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--mist);padding:.65rem 0}
.list-item:last-child{border-bottom:0}
.list-main{min-width:0}
.list-title{font-weight:600;color:var(--navy)}
.list-meta{font-size:.78rem;color:var(--soft);margin-top:.18rem}

/* modal/profile */
.modal-backdrop{position:fixed;inset:0;background:rgba(6,20,39,.62);z-index:80;display:flex;justify-content:flex-end}
.modal-panel{height:100%;width:min(860px,100%);background:var(--mist);overflow:auto;box-shadow:-12px 0 35px rgba(0,0,0,.2)}
.modal-panel.narrow{width:min(640px,100%)}
.modal-head{position:sticky;top:0;z-index:3;background:var(--navy);color:#fff;padding:1rem 1.35rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.modal-head-title{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;font-size:1.35rem;letter-spacing:.04em;font-weight:600}
.modal-close{border:0;background:transparent;color:var(--silver);font-size:1.65rem;line-height:1;padding:.1rem .4rem}
.modal-body{padding:1.25rem}
.profile-hero{background:#fff;border:1px solid var(--mist-deep);border-top:4px solid var(--blue);padding:1.25rem;border-radius:var(--radius);margin-bottom:1rem}
.profile-top{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}
.profile-name{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;color:var(--navy);font-size:2.15rem;line-height:1;font-weight:600;margin:0}
.profile-contact{color:var(--soft);font-size:.88rem;margin-top:.45rem}
.profile-actions{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:1rem}
.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem}
.profile-section{background:#fff;border:1px solid var(--mist-deep);border-radius:var(--radius);padding:1rem}
.profile-section.full{grid-column:1/-1}
.profile-section h3{margin:0 0 .75rem;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.1em;font-size:.9rem;color:var(--blue-deep)}
.definition-grid{display:grid;grid-template-columns:minmax(115px,.45fr) 1fr;gap:.42rem .8rem;font-size:.84rem}
.definition-grid dt{color:#78828a;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.055em;font-weight:600}
.definition-grid dd{margin:0;color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere}
.timeline{display:grid;gap:.65rem}
.timeline-item{border-left:3px solid var(--blue);background:#f8fafc;padding:.75rem .85rem}
.timeline-date{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.06em;color:var(--soft);font-size:.72rem}
.timeline-title{font-weight:600;color:var(--navy);margin-top:.15rem}
.timeline-notes{font-size:.84rem;color:var(--soft);white-space:pre-wrap;margin-top:.3rem}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}
.form-field{display:block}
.form-field.full{grid-column:1/-1}
.form-field span{display:block;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.065em;font-size:.72rem;font-weight:700;color:#68737c;margin-bottom:.28rem}
.form-field .textarea{min-height:95px;resize:vertical}
.form-actions{display:flex;justify-content:flex-end;gap:.55rem;margin-top:1.2rem;flex-wrap:wrap}
.checkbox-field{display:flex;align-items:center;gap:.5rem;padding-top:1.45rem;color:var(--soft)}
.checkbox-field input{width:17px;height:17px;accent-color:var(--blue)}

.toast{position:fixed;right:1.2rem;bottom:1.2rem;z-index:120;background:var(--navy);color:#fff;padding:.8rem 1rem;border-radius:4px;box-shadow:var(--shadow);font-size:.86rem;opacity:0;transform:translateY(12px);pointer-events:none;transition:.18s ease}
.toast.show{opacity:1;transform:translateY(0)}
.toast.error{background:var(--port)}

@media(max-width:900px){
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .two-grid{grid-template-columns:1fr}
  .header-inner{align-items:flex-start}
  .brand-burgee{width:76px;height:48px}
}
@media(max-width:650px){
  .header-inner{display:block}
  .header-actions{justify-content:flex-start;margin-top:.75rem}
  .brand-title{font-size:1.45rem}
  .main-content{padding:1.1rem .8rem 3rem}
  .nav-inner{padding:0 .75rem}
  .nav-button{padding:.72rem .8rem}
  .stats-grid{grid-template-columns:1fr 1fr}
  .profile-grid,.form-grid{grid-template-columns:1fr}
  .profile-section.full,.form-field.full{grid-column:auto}
  .definition-grid{grid-template-columns:1fr}
  .definition-grid dt{margin-top:.35rem}
}

@media print{
  body{background:#fff}
  .app-header,.auth-screen,.toast,.modal-head,.profile-actions{display:none!important}
  #app{display:none!important}
  .modal-backdrop{position:static;display:block;background:#fff}
  .modal-panel{width:100%;height:auto;overflow:visible;box-shadow:none;background:#fff}
  .modal-body{padding:0}
  .profile-hero,.profile-section{break-inside:avoid;border-color:#ccd2d8}
  .profile-grid{grid-template-columns:1fr 1fr}
}

/* custom Identity forms — avoids the legacy widget modal */
.auth-panel{margin:1.1rem auto 0;max-width:390px;text-align:left}
.auth-panel-title{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.06em;font-size:1.2rem;font-weight:700;color:var(--navy);text-align:center;margin-bottom:.3rem}
.auth-panel-copy{font-size:.9rem!important;margin:0 auto 1rem!important;text-align:center}
.auth-form{display:grid;gap:.8rem}
.auth-form label span{display:block;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.065em;font-size:.73rem;font-weight:700;color:#68737c;margin-bottom:.28rem}
.auth-submit{width:100%;margin-top:.15rem}
.auth-text-button{border:0;background:transparent;color:var(--blue);font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.07em;font-size:.75rem;font-weight:700;padding:.35rem;justify-self:center}
.auth-text-button:hover{text-decoration:underline}
.auth-message{min-height:1.25rem;margin:.8rem auto 0;max-width:390px;font-size:.85rem;color:var(--soft);text-align:center}
.auth-message.error{color:var(--port);font-weight:600}
.auth-message.success{color:var(--starboard);font-weight:600}
.auth-card.busy .auth-submit{opacity:.6;cursor:wait}
