
body{font-family:Arial,sans-serif;background:#f5f5f5;color:#111;padding:20px;margin:0}.nav{margin-bottom:20px}.nav a{margin-right:20px;color:#111;font-weight:bold}.card{background:#fff;border:1px solid #ccc;padding:16px;margin:16px 0;border-radius:8px}.event-header{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.inline-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0}label{display:flex;flex-direction:column;gap:4px;font-weight:bold;margin-bottom:12px}input,textarea,select,button{font:inherit}input[type=text],input[type=date],input[type=number],input[type=search],textarea,select{width:100%;box-sizing:border-box;padding:8px;border:1px solid #999;border-radius:4px;background:white}.searchbox{margin:12px 0;max-width:420px}.notes-input{min-height:42px;resize:vertical}.big-notes{min-height:140px}.qty-input{max-width:80px;text-align:center}.keys{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.shop{background:yellow;padding:8px 12px;border:1px solid #777}.crossload{background:orange;padding:8px 12px;border:1px solid #777}.attention{background:lightgreen;padding:8px 12px;border:1px solid #777}.section-title{margin-top:28px;background:#222;color:#fff;padding:10px}table{width:100%;border-collapse:collapse;background:white;margin-bottom:20px}th,td{border:1px solid #bbb;padding:8px;vertical-align:top}th{background:#e8e8e8}.click-row{cursor:pointer}.click-row:hover{background:#f0f7ff}.center{text-align:center}.ok{background:#d7ffd7;border:1px solid #393;padding:10px;margin:10px 0}.err{background:#ffd7d7;border:1px solid #c33;padding:10px;margin:10px 0}.btn,button{display:inline-block;background:#111;color:white;padding:10px 16px;border:0;border-radius:6px;cursor:pointer;text-decoration:none}.secondary{background:#555}.danger{background:#b00020}.danger-form{margin-top:18px}.sticky-actions{position:sticky;bottom:0;background:#f5f5f5;padding:12px 0;border-top:1px solid #ccc;display:flex;gap:10px}@media print{.nav,.no-print,.danger-form,.sticky-actions{display:none!important}body{background:white;padding:0}input,textarea,select{border:0;padding:0}textarea{resize:none}tr{page-break-inside:avoid}}


.auth-card{max-width:460px;margin:60px auto;background:#fff;border:1px solid #ccc;border-radius:10px;padding:24px;box-shadow:0 8px 24px rgba(0,0,0,.08)}.auth-card.wide{max-width:820px}.auth-form label{margin-bottom:14px}.auth-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px 18px}.auth-actions{display:flex;align-items:center;gap:10px;grid-column:1/-1}.auth-switch{margin-top:18px}.muted{color:#555}.nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.nav a{margin-right:0}.nav-user{margin-left:auto;color:#555;font-size:.95em}.logout-form{margin:0}.link-button{background:none;color:#111;padding:0;border:0;text-decoration:underline;font-weight:bold}.auth-card input[type=text],.auth-card input[type=email],.auth-card input[type=password]{width:100%;box-sizing:border-box;padding:8px;border:1px solid #999;border-radius:4px;background:white}

.reset-link-box{word-break:break-word;line-height:1.45}


.general-notes-section {
  margin-top: 24px;
  clear: both;
  border: 2px solid #444;
  border-radius: 8px;
  padding: 16px;
  background: #fff;
}
.general-notes-section h2 {
  margin: 0 0 12px;
}
.general-notes-field {
  width: 100%;
  min-height: 150px;
  box-sizing: border-box;
  resize: vertical;
}
.print-only {
  display: none;
}


.general-notes-history {
  white-space: pre-wrap;
  border: 1px solid #cfcfcf;
  border-radius: 6px;
  padding: 12px;
  margin: 8px 0 14px;
  min-height: 48px;
  background: #fff;
}

.general-notes-empty {
  font-style: italic;
  opacity: 0.7;
}

@media print {
  .general-notes-history {
    border: 0;
    padding: 0;
    margin-top: 6px;
  }
}

.sortable-header{cursor:pointer;user-select:none;position:relative;padding-right:20px}
.sortable-header::after{content:'↕';position:absolute;right:6px;opacity:.45}
.sortable-header[data-sort-dir="asc"]::after{content:'▲';opacity:1}
.sortable-header[data-sort-dir="desc"]::after{content:'▼';opacity:1}

.department-heading{margin-top:34px;padding:14px 16px;background:#0b3d62;color:#fff;font-size:1.45rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.department-row td{background:#0b3d62!important;color:#fff!important;font-weight:800;font-size:15px;letter-spacing:.08em}.hierarchy-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:18px}.manage-row{display:grid;grid-template-columns:1.3fr 90px auto 1fr auto;gap:8px;align-items:center;border-top:1px solid #ddd;padding:9px 0}.category-manage-row{grid-template-columns:1fr 1.2fr 80px auto 90px auto}.inline-check{flex-direction:row;align-items:center;margin:0}.inline-check input{width:auto}@media(max-width:900px){.hierarchy-grid{grid-template-columns:1fr}.manage-row,.category-manage-row{grid-template-columns:1fr}}


/* Event completion/cancellation and pullsheet lock controls */
.event-control-summary { margin: 0 0 16px; padding: 14px; border: 2px solid #9aa4ad; border-radius: 8px; background: #f6f8fa; }
.event-control-summary.status-completed { border-color: #238636; background: #e7f7ea; }
.event-control-summary.status-cancelled { border-color: #cf222e; background: #ffebe9; }
.event-state-heading { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 10px; }
.event-status-badge, .pullsheet-lock-badge, .pullsheet-unlock-badge { display: inline-block; padding: 5px 9px; border-radius: 999px; font-weight: 800; font-size: 12px; letter-spacing: .04em; }
.event-status-badge.status-active { background: #d8dee4; color: #24292f; }
.event-status-badge.status-completed { background: #1a7f37; color: #fff; }
.event-status-badge.status-cancelled { background: #cf222e; color: #fff; }
.pullsheet-lock-badge { background: #24292f; color: #fff; }
.pullsheet-unlock-badge { background: #ddf4ff; color: #0550ae; }
.admin-event-controls { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.admin-control-form { display: flex; gap: 8px; align-items: center; margin: 0; }
.admin-control-form select { min-width: 130px; }
.lock-button { background: #24292f; color: #fff; }
.unlock-button { background: #0969da; color: #fff; }
.event-row-status-completed td { background: #dafbe1 !important; }
.event-row-status-cancelled td { background: #ffebe9 !important; }
.pullsheet-readonly { position: relative; }
.pullsheet-readonly input:disabled, .pullsheet-readonly textarea:disabled, .pullsheet-readonly select:disabled { opacity: .82; color: #24292f; -webkit-text-fill-color: #24292f; background: #f0f2f4; cursor: not-allowed; }


/* Recently updated pullsheet flag (visible for 48 hours after a successful save). */
.recently-updated-badge{display:inline-block;background:#f97316;color:#fff;border:1px solid #c2410c;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;letter-spacing:.04em;white-space:nowrap;box-shadow:0 1px 2px rgba(0,0,0,.15)}
.recently-updated-time{margin-top:4px;font-size:11px;color:#6b7280;white-space:nowrap}
.recently-updated-inline-time{font-size:12px;font-weight:700;color:#9a3412}
.not-recently-updated{color:#9ca3af}
@media print{.recently-updated-badge,.recently-updated-time,.recently-updated-inline-time{display:none!important}}

/* Pullsheet template workflow */
.template-button {
  background: #5b3fa3;
  color: #fff;
  border-color: #5b3fa3;
  white-space: nowrap;
}
.template-button:hover { filter: brightness(1.08); }
.template-source-summary { border-left: 6px solid #5b3fa3; }
.template-form { padding-bottom: 82px; }
.template-copy-options,
.template-reset-summary { margin-top: 16px; }
.template-copy-options h2,
.template-reset-summary h2,
.template-source-summary h2 { margin-top: 0; }
.template-option {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 10px 0;
  font-weight: 600;
}
.template-option input { width: 18px; height: 18px; }
.template-actions { display: flex; gap: 10px; align-items: center; }
.btn.small { padding: 5px 9px; font-size: .86rem; }


/* Admin-only pullsheet deletion */
.delete-pullsheet-form { margin-left: auto; }
.delete-pullsheet-button { background: #b42318; color: #fff; border: 1px solid #912018; font-weight: 800; }
.delete-pullsheet-button:hover { background: #912018; }
.delete-pullsheet-button.small { padding: 5px 9px; font-size: .86rem; white-space: nowrap; }
.inline-delete-form { margin: 0; }
.event-admin-actions { white-space: nowrap; }
@media print { .delete-pullsheet-form, .event-admin-actions { display: none !important; } }
