@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700&family=Inter:wght@400;500;600&display=swap');

#fc-portal-root {
    --fc-turf: #1B4332;
    --fc-turf-dark: #0F2B21;
    --fc-chalk: #FAFAF7;
    --fc-navy: #16232E;
    --fc-sage: #7C9885;
    --fc-amber: #E3A008;
    --fc-rust: #C1440E;
    --fc-line: #D8DED9;

    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--fc-navy);
    background: var(--fc-chalk);
    max-width: 1080px;
    margin: 0 auto;
    border: 1px solid var(--fc-line);
}

#fc-portal-root * { box-sizing: border-box; }

#fc-portal-root h1, #fc-portal-root h2, #fc-portal-root h3 {
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700;
    letter-spacing: 0.01em;
    margin: 0 0 12px;
}

/* ---- Gate screen ---- */
.fc-gate {
    min-height: 320px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--fc-turf);
    padding: 40px 24px;
}
.fc-gate-card {
    background: var(--fc-chalk);
    padding: 32px;
    width: 100%;
    max-width: 360px;
    border-top: 6px solid var(--fc-amber);
}
.fc-gate-card h1 { font-size: 30px; color: var(--fc-turf-dark); }
.fc-gate-card p { font-size: 14px; color: var(--fc-sage); margin: 0 0 20px; }

/* ---- Layout ---- */
.fc-app { display: flex; align-items: stretch; min-height: 520px; }
.fc-sidebar {
    width: 320px;
    flex-shrink: 0;
    background: var(--fc-turf-dark);
    color: var(--fc-chalk);
    padding: 24px;
}
.fc-sidebar h2 { color: var(--fc-chalk); font-size: 24px; }
.fc-main { flex: 1; padding: 24px; min-width: 0; }

.fc-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--fc-turf);
    color: var(--fc-chalk);
    padding: 14px 24px;
}
.fc-topbar strong { font-family: 'Barlow Condensed', sans-serif; font-size: 22px; letter-spacing: 0.02em; }
.fc-whoami { font-size: 13px; opacity: 0.85; }
.fc-lock-btn {
    background: transparent;
    border: 1px solid rgba(250,250,247,0.4);
    color: var(--fc-chalk);
    padding: 6px 12px;
    font-size: 12px;
    cursor: pointer;
}

/* ---- Form elements ---- */
.fc-field { margin-bottom: 14px; }
.fc-field label { display: block; font-size: 12px; margin-bottom: 4px; opacity: 0.9; }
.fc-sidebar .fc-field label { color: var(--fc-chalk); }
.fc-main .fc-field label { color: var(--fc-navy); }

.fc-field input, .fc-field select, .fc-field textarea {
    width: 100%;
    padding: 9px 10px;
    border: 1px solid var(--fc-line);
    background: var(--fc-chalk);
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    color: var(--fc-navy);
}
.fc-sidebar .fc-field input,
.fc-sidebar .fc-field select,
.fc-sidebar .fc-field textarea {
    border: 1px solid rgba(250,250,247,0.25);
}
.fc-field textarea { min-height: 96px; resize: vertical; }

.fc-btn {
    display: inline-block;
    border: none;
    padding: 11px 18px;
    font-family: 'Barlow Condensed', sans-serif;
    font-weight: 700;
    font-size: 16px;
    letter-spacing: 0.02em;
    cursor: pointer;
    background: var(--fc-amber);
    color: var(--fc-turf-dark);
}
.fc-btn:hover { opacity: 0.92; }
.fc-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.fc-btn-block { width: 100%; }
.fc-btn-secondary {
    background: transparent;
    border: 1px solid var(--fc-turf);
    color: var(--fc-turf);
}
.fc-filters-dark .fc-btn-secondary {
    border-color: rgba(250,250,247,0.4);
    color: var(--fc-chalk);
}

.fc-error {
    background: #FBE4E0;
    border-left: 3px solid var(--fc-rust);
    color: #7A2A14;
    padding: 10px 12px;
    font-size: 13px;
    margin-bottom: 12px;
}
.fc-success {
    background: #E7F0EA;
    border-left: 3px solid var(--fc-turf);
    color: var(--fc-turf-dark);
    padding: 10px 12px;
    font-size: 13px;
    margin-bottom: 12px;
}

/* ---- Filters ---- */
.fc-filters {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 18px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--fc-line);
}
.fc-filters select, .fc-filters input {
    padding: 7px 8px;
    border: 1px solid var(--fc-line);
    font-size: 13px;
    font-family: 'Inter', sans-serif;
}
.fc-filters input[type="text"] { flex: 1; min-width: 160px; }

/* ---- Log feed ---- */
.fc-date-heading {
    font-family: 'Barlow Condensed', sans-serif;
    font-size: 15px;
    color: var(--fc-sage);
    margin: 20px 0 8px;
    padding-bottom: 4px;
    border-bottom: 1px solid var(--fc-line);
}
.fc-date-heading:first-child { margin-top: 0; }

.fc-entry {
    border-left: 4px solid var(--fc-sage);
    background: #fff;
    padding: 12px 14px;
    margin-bottom: 10px;
}
.fc-entry.cat-field-change { border-left-color: var(--fc-turf); }
.fc-entry.cat-time-change { border-left-color: #2E6E9E; }
.fc-entry.cat-cancellation { border-left-color: var(--fc-rust); }
.fc-entry.cat-weather-alert { border-left-color: var(--fc-amber); }

.fc-entry-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 4px;
    flex-wrap: wrap;
}
.fc-entry-subject { font-weight: 600; font-size: 15px; }
.fc-entry-meta { font-size: 12px; color: var(--fc-sage); white-space: nowrap; }
.fc-entry-tags { font-size: 11px; color: var(--fc-sage); margin-bottom: 6px; }
.fc-entry-tags span { text-transform: none; }
.fc-entry-body { font-size: 14px; line-height: 1.5; white-space: pre-wrap; }

.fc-empty { color: var(--fc-sage); font-size: 14px; padding: 24px 0; text-align: center; }

/* ---- Status badges ---- */
.fc-badge {
    display: inline-block;
    padding: 1px 7px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    border-radius: 2px;
}
.fc-badge-new { background: #FCEFD1; color: #8A5A00; }
.fc-badge-tbd { background: #DCE7F0; color: #2E4E6E; }
.fc-badge-sent { background: #E0EEE4; color: #1B4332; }

/* ---- Replies (inline, coach feed) ---- */
.fc-reply {
    margin-top: 10px;
    padding: 8px 10px;
    background: #F3F6F3;
    border-left: 3px solid var(--fc-sage);
}
.fc-reply-head { font-size: 11px; color: var(--fc-sage); margin-bottom: 3px; font-weight: 600; }
.fc-reply-body { font-size: 13px; line-height: 1.5; white-space: pre-wrap; }

/* ---- Scheduler two-pane layout ---- */
.fc-scheduler-list-pane { width: 380px; }
.fc-scheduler-list-pane h2 { color: var(--fc-chalk); }
.fc-filters-dark select, .fc-filters-dark input {
    background: rgba(250,250,247,0.08);
    border: 1px solid rgba(250,250,247,0.25);
    color: var(--fc-chalk);
}
.fc-filters-dark input::placeholder { color: rgba(250,250,247,0.5); }
#fc-scheduler-list { max-height: 640px; overflow-y: auto; }
#fc-scheduler-list .fc-entry { cursor: pointer; }
#fc-scheduler-list .fc-entry:hover { box-shadow: 0 0 0 1px var(--fc-amber) inset; }
#fc-scheduler-list .fc-date-heading { color: rgba(250,250,247,0.6); }

.fc-detail { background: #fff; padding: 4px 4px 20px; }
.fc-detail-header h2 { font-size: 26px; color: var(--fc-turf-dark); margin-bottom: 4px; }
.fc-status-row { margin-top: 8px; font-size: 13px; }
.fc-status-row select { display: inline-block; width: auto; padding: 4px 8px; }
.fc-detail-body { margin: 16px 0; font-size: 15px; }
.fc-thread-heading { font-size: 16px; color: var(--fc-sage); margin: 18px 0 8px; }
#fc-reply-form { margin-top: 16px; border-top: 1px solid var(--fc-line); padding-top: 16px; }

@media (max-width: 720px) {
    .fc-app { flex-direction: column; }
    .fc-sidebar { width: auto; }
    .fc-scheduler-list-pane { width: auto; }
}
