:root{
  --ocu-blue:#00669b;        /* OCU primary blue */
  --ocu-blue-dark:#004d75;
  --ocu-gold:#c9a227;        /* accent */
  --ink:#1f2733;
  --muted:#6b7682;
  --line:#e2e7ec;
  --bg:#f5f7f9;
  --card:#ffffff;
  --ok:#1c7c3f;
  --warn:#b45309;
  --crit:#a4271c;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color:var(--ink);background:var(--bg);line-height:1.5}
a{color:var(--ocu-blue);text-decoration:none}
a:hover{text-decoration:underline}
.muted{color:var(--muted)}
.center{text-align:center}
small{color:var(--muted)}

#news-banner{background:#eef4f8;color:var(--ink);text-align:center;padding:.5em 1em;
  border-bottom:1px solid var(--line);font-size:.92rem}

/* Header */
#site-header{background:var(--ocu-blue);color:#fff}
.header-inner{max-width:1100px;margin:auto;display:flex;align-items:stretch;
  justify-content:space-between;padding:0 1em}
.brand{display:flex;align-items:center;gap:.7em;color:#fff;padding:.5em 0}
.brand:hover{text-decoration:none}
.logo{height:46px;width:auto}
.brand-text{font-weight:600;font-size:1.05rem}
.header-nav{display:flex;align-items:stretch}
.header-nav > a,.dropdown > .dd-toggle{
  display:flex;align-items:center;color:#fff;padding:0 1.1em;cursor:pointer;
  text-decoration:none;white-space:nowrap}
.header-nav > a:hover,.dropdown:hover > .dd-toggle,.dropdown:focus-within > .dd-toggle{
  background:var(--ocu-blue-dark);text-decoration:none}
.header-nav .who{display:flex;align-items:center;padding:0 .9em;opacity:.85;font-size:.9rem}
.header-nav .logout{font-weight:600}

/* Layout */
#content{min-height:70vh}
.container{max-width:1100px;margin:1.5em auto;padding:0 1em}
.narrow{max-width:820px}
.page-title{margin:.2em 0 .8em}
.row{display:flex;gap:1em;flex-wrap:wrap;align-items:center}
.row.between{justify-content:space-between}
.spacer{flex:1}
.stack-v{display:flex;flex-direction:column;gap:1em}

/* Landing cards */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1em}
.module-card{display:block;background:var(--card);border:1px solid var(--line);
  border-radius:14px;padding:1.2em;color:var(--ink);transition:.15s;position:relative}
.module-card:hover{text-decoration:none;box-shadow:0 6px 20px rgba(0,0,0,.08);
  transform:translateY(-2px);border-color:var(--ocu-blue)}
.module-card h2{margin:.3em 0 .2em;font-size:1.15rem;color:var(--ocu-blue-dark)}
.module-card p{margin:0;color:var(--muted);font-size:.92rem}
.card-icon{font-size:1.8rem}
.badge{background:var(--ocu-gold);color:#fff;border-radius:999px;padding:.1em .6em;
  font-size:.72rem;font-weight:700}
.module-card .badge{position:absolute;top:.8em;right:.8em}

/* Auth */
.auth-wrap{display:flex;justify-content:center;padding:3em 1em}
.auth-card{background:var(--card);border:1px solid var(--line);border-radius:16px;
  padding:2em;width:100%;max-width:400px}
.auth-card h1{margin-top:0}
.stack{display:flex;flex-direction:column;gap:.8em}
.stack label{display:flex;flex-direction:column;gap:.3em;font-size:.9rem;font-weight:600}
.stack input{padding:.6em;border:1px solid var(--line);border-radius:8px;font-size:1rem}
.divider{display:flex;align-items:center;text-align:center;color:var(--muted);margin:1.1em 0}
.divider::before,.divider::after{content:"";flex:1;border-bottom:1px solid var(--line)}
.divider span{padding:0 .8em;font-size:.85rem}
.form-error{background:#fdecea;color:#a4271c;padding:.6em .8em;border-radius:8px}
.form-note{background:#eef8f0;color:#1c5c33;padding:.6em .8em;border-radius:8px}

/* Buttons */
.btn{display:inline-block;border:0;border-radius:8px;padding:.6em 1.1em;font-size:.95rem;
  cursor:pointer;text-align:center}
.btn-primary{background:var(--ocu-blue);color:#fff}
.btn-primary:hover{background:var(--ocu-blue-dark);text-decoration:none;color:#fff}
.btn-sso{background:#fff;border:1px solid var(--ocu-blue);color:var(--ocu-blue);width:100%;font-weight:600}
.btn-ghost{background:#fff;border:1px solid var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--ocu-blue);text-decoration:none}
.btn-danger{background:#fff;border:1px solid var(--crit);color:var(--crit)}
.btn-small{padding:.3em .7em;font-size:.82rem}
.btn-block{width:100%}

/* Tables */
.data-table{width:100%;border-collapse:collapse;background:var(--card);
  border:1px solid var(--line);border-radius:10px;overflow:hidden}
.data-table th{background:var(--ocu-blue);color:#fff;text-align:left;padding:.6em .8em;font-size:.9rem}
.data-table td{padding:.55em .8em;border-top:1px solid var(--line);vertical-align:top}
.data-table tbody tr:hover{background:#eef4f8}
.filter-bar{display:flex;gap:.6em;margin-bottom:1em;flex-wrap:wrap;align-items:center}
.filter-bar input,.filter-bar select{padding:.5em;border:1px solid var(--line);border-radius:8px}

/* Status pills */
.pill{display:inline-block;border-radius:999px;padding:.12em .7em;font-size:.75rem;
  font-weight:700;white-space:nowrap;border:1px solid transparent}
.pill.draft{background:#eef1f4;color:#55606c}
.pill.submitted,.pill.under_review{background:#e6f0f7;color:var(--ocu-blue-dark)}
.pill.changes_requested{background:#fff4e5;color:var(--warn)}
.pill.approved{background:#e7f5ec;color:var(--ok)}
.pill.approved_with_contingencies{background:#e7f5ec;color:var(--ok)}
.pill.deferred{background:#fff4e5;color:var(--warn)}
.pill.disapproved{background:#fdecea;color:var(--crit)}
.pill.withdrawn{background:#eef1f4;color:var(--muted)}

/* Cards / panels */
.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1.2em;margin-bottom:1em}
.panel h2{margin-top:0;color:var(--ocu-blue-dark);font-size:1.15rem}
.panel h3{color:var(--ocu-blue-dark);font-size:1rem;margin:.2em 0 .5em}
dl.kv{display:grid;grid-template-columns:auto 1fr;gap:.35em .9em;margin:0}
dl.kv dt{color:var(--muted);font-size:.85rem}
dl.kv dd{margin:0}

/* Forms — proposal editor */
.form-section{background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:1.2em;margin-bottom:1.2em}
.form-section > h2{margin-top:0;color:var(--ocu-blue-dark);font-size:1.1rem;
  border-bottom:2px solid var(--ocu-gold);padding-bottom:.3em}
.field{display:flex;flex-direction:column;gap:.3em;margin-bottom:1em}
.field > label{font-weight:600;font-size:.92rem}
.field .help{font-size:.82rem;color:var(--muted)}
.field input[type=text],.field input[type=email],.field input[type=tel],
.field select,.field textarea{
  padding:.55em;border:1px solid var(--line);border-radius:8px;font-size:.95rem;
  font-family:inherit;width:100%}
.field textarea{min-height:110px;resize:vertical}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1em}
.inline-radios{display:flex;gap:1.2em;flex-wrap:wrap}
.inline-radios label{font-weight:400;display:flex;align-items:center;gap:.35em}
.sticky-actions{position:sticky;bottom:0;background:rgba(245,247,249,.95);
  border-top:1px solid var(--line);padding:.8em 0;display:flex;gap:.8em;align-items:center}

/* AI findings */
.readiness{display:flex;align-items:center;gap:1em;margin-bottom:1em}
.readiness .score{font-size:2rem;font-weight:800}
.readiness .low{color:var(--crit)}
.readiness .moderate{color:var(--warn)}
.readiness .high{color:var(--ok)}
.finding{border-left:4px solid var(--line);padding:.5em .8em;margin-bottom:.7em;background:#fafbfc;border-radius:0 8px 8px 0}
.finding.critical{border-color:var(--crit)}
.finding.major{border-color:var(--warn)}
.finding.minor{border-color:var(--ocu-blue)}
.finding .sev{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.finding.critical .sev{color:var(--crit)}
.finding.major .sev{color:var(--warn)}
.finding.minor .sev{color:var(--ocu-blue)}
.finding .rec{color:var(--ink);margin-top:.3em}
.finding .rec::before{content:"→ ";color:var(--ocu-blue)}

/* Comments */
.comment{border:1px solid var(--line);border-radius:10px;padding:.7em .9em;margin-bottom:.7em;background:var(--card)}
.comment.internal{background:#fff8ec;border-color:#f0dca6}
.comment .meta{font-size:.8rem;color:var(--muted);margin-bottom:.3em}
.comment .sec{font-weight:600;color:var(--ocu-blue-dark)}

/* Doc list */
.doc-list{list-style:none;padding:0;margin:0}
.doc-list li{display:flex;align-items:center;gap:.6em;padding:.4em 0;border-top:1px solid var(--line)}
.doc-list li:first-child{border-top:0}
.doc-list .dtype{font-size:.75rem;background:#eef4f8;color:var(--ocu-blue-dark);
  border-radius:6px;padding:.1em .5em;font-weight:600}

/* Footer */
#site-footer{max-width:1100px;margin:2em auto;padding:1em;display:flex;
  justify-content:space-between;align-items:center;border-top:1px solid var(--line);
  font-size:.85rem;color:var(--muted)}

.saved-flash{background:#e7f5ec;color:var(--ok);padding:.5em .8em;border-radius:8px;margin-bottom:1em}
