:root { --fg:#1d2330; --muted:#5b6475; --accent:#1f5fbf; --err:#b3261e; --ok:#1e7a3c;
        --bg:#f4f6f9; --card:#fff; --line:#d9dee7; }
* { box-sizing: border-box; }
body { margin:0; padding-top: 100px; background:var(--bg); color:var(--fg);
       background-image: url("ieee_canada_cover.jpeg");
       background-position: center;
       background-position-y: 0;
       background-repeat: no-repeat;
       background-size: min(46rem, 100%);
       font:16px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
#app { max-width:46rem; margin:2rem auto; padding:2rem; background:var(--card);
       border-radius:10px; box-shadow:0 1px 4px rgba(0,0,0,.08); }
.view[hidden], [hidden] { display:none !important; }
h1 { font-size:1.6rem; margin:0 0 .5rem; }
h2 { font-size:1.2rem; margin:2rem 0 .5rem; padding-bottom:.25rem; border-bottom:1px solid var(--line); }
.session { color:var(--muted); font-size:.9rem; margin-bottom:1rem; }
.intro p { margin:.5rem 0; }
.intro a, .note-label a, .note-help a { color:var(--accent); word-break:break-word; }
.note-label { font-weight:600; }
.note-help { color:var(--muted); font-size:.9rem; }
.note-label p, .note-help p { margin:.4rem 0; }
.note-label + .note-help p:first-child { margin-top:.1rem; }
.field { margin:1.25rem 0; }
.field fieldset { border:0; margin:0; padding:0; min-width:0; }
.label { display:block; font-weight:600; margin-bottom:.3rem; padding:0; }
.req { color:var(--err); }
.help { color:var(--muted); font-size:.9rem; margin:-.1rem 0 .4rem; }
input[type=text], input[type=email], textarea, select {
  width:100%; padding:.55rem .65rem; font:inherit; color:inherit;
  border:1px solid var(--line); border-radius:6px; background:#fff; }
textarea { resize:vertical; }
input:focus, textarea:focus, select:focus { outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent); }
.check { display:flex; gap:.55rem; align-items:flex-start; margin:.3rem 0; cursor:pointer; }
.check input { margin-top:.3rem; flex:none; width:1.05rem; height:1.05rem; }
.field-checkbox .check { /* font-weight:600; */ }
.counter { text-align:right; font-size:.85rem; color:var(--muted); }
.counter.over { color:var(--err); font-weight:600; }
.has-error input[type=text], .has-error textarea, .has-error select { border-color:var(--err); }
.error-msg { color:var(--err); font-size:.9rem; }
.error-msg:empty { display:none; }
.actions { display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; margin-top:1.5rem;
           padding-top:1rem; border-top:1px solid var(--line); }
button { font:inherit; padding:.6rem 1.2rem; border-radius:6px; border:1px solid var(--accent);
         background:var(--accent); color:#fff; cursor:pointer; }
button.secondary { background:#fff; color:var(--accent); }
button.link { border:0; background:none; color:var(--accent); padding:0; text-decoration:underline; }
button:disabled { opacity:.6; cursor:progress; }
.save-status { color:var(--muted); font-size:.85rem; }
.status { min-height:1.5em; }
.status.error { color:var(--err); }
.status.ok { color:var(--ok); }
.warning { background:#fff4e5; border:1px solid #f0c27b; padding:.5rem .75rem; border-radius:6px; }
@media (max-width:40rem) { #app { margin:0; border-radius:0; padding:1.25rem; } }
#app.wide { max-width:60rem; }
.subtitle { color:var(--muted); margin-top:-.25rem; }
.muted { color:var(--muted); font-weight:normal; font-size:.9rem; }
input[type=search] { width:100%; padding:.45rem .65rem; font:inherit; color:inherit;
  border:1px solid var(--line); border-radius:6px; margin:.25rem 0 .75rem; }
table { width:100%; border-collapse:collapse; font-size:.95rem; }
th, td { text-align:left; padding:.4rem .5rem; border-bottom:1px solid var(--line); vertical-align:top; }
th { font-weight:600; color:var(--muted); }
th:first-child, td:first-child { width:2rem; }
td.addr { word-break:break-all; }
.tag { display:inline-block; margin-left:.5rem; padding:0 .4rem; font-size:.75rem; border-radius:4px;
  background:#fff4e5; border:1px solid #f0c27b; }
code { background:var(--bg); padding:.1rem .35rem; border-radius:4px; word-break:break-all; }
.has-error input[type=email] { border-color:var(--err); }
.admin-table { text-wrap: nowrap }
.admin-table th:first-child, .admin-table td:first-child { width:auto; }
.admin-table input { padding:.35rem .5rem; }
.filters { display:flex; gap:.75rem; align-items:center; margin:.5rem 0 .75rem; }
.filters select { width:auto; }
.filters input[type=search] { margin:0; }
.badge { display:inline-block; padding:0 .45rem; border-radius:4px; font-size:.8rem; border:1px solid; }
.badge-pending  { color:#8a5a00; background:#fff4e5; border-color:#f0c27b; }
.badge-approved { color:var(--ok); background:#e8f5ec; border-color:#9fd3ae; }
.badge-rejected { color:var(--err); background:#fdecea; border-color:#f1aca6; }
button.small { padding:.25rem .6rem; font-size:.85rem; margin-top:.3rem; }
h3 { font-size:1.05rem; margin:1.25rem 0 .25rem; }
.answer { margin:.6rem 0; }
.answer .value { white-space:pre-wrap; background-color: #F4F4FF; border: 1px solid #E4E4FF; padding: 5px; font-size: 13px; border-radius: 5px; }
.history { padding-left:1.2rem; color:var(--muted); font-size:.9rem; }
.award { text-wrap: wrap; }
.admin-table td { font-size: 12px; }
@media print {
  body { background:#fff; }
  #app { box-shadow:none; margin:0; padding:0; max-width:none; }
  .session, .no-print, .warning, .status:empty { display:none !important; }
}
