
/* ===== Agreeing a time =====
   The company sees what the investor offered and can take one, or put its own
   forward. Suggesting your own withdraws theirs, so the list never mixes times
   that are still wanted with times that are not -- and the page says so. */
.ch-times {
    margin: 10px 0 4px;
    padding: 10px 12px;
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 8px;
}

.ch-times-head {
    font-size: 0.74rem;
    font-weight: 600;
    color: var(--muted, #6b7280);
    margin-bottom: 7px;
}

.ch-time {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 5px 0;
    font-size: 0.84rem;
    font-variant-numeric: tabular-nums;
}

.ch-offer {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
    margin-top: 10px;
}

.ch-input {
    font: inherit;
    font-size: 0.82rem;
    padding: 6px 8px;
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 6px;
}

.ch-mins { width: 4.6em; text-align: right; font-variant-numeric: tabular-nums; }
.ch-for { font-size: 0.75rem; color: var(--muted, #6b7280); }

.ch-hint {
    font-size: 0.72rem;
    color: var(--muted, #6b7280);
    margin-top: 5px;
}

/* "Add to calendar" sits with the confirmed time, not among the controls that
   change it -- it takes the meeting away with you rather than altering it. */
.act-actions { margin-top: 8px; }

.act-ics {
    font-size: 0.76rem;
    color: var(--accent, #3b82f6);
    text-decoration: none;
}

.act-ics:hover { text-decoration: underline; }

.act-cancel {
    font-size: 0.76rem;
    background: none;
    border: none;
    color: var(--muted, #6b7280);
    cursor: pointer;
    padding: 0;
    margin-left: 14px;
    text-decoration: underline;
}

.act-cancel:hover { color: #B45309; }

/* ===== Post-meeting feedback =====
   The loop the platform turns on: the investor tells us, we turn it into
   recommendations, and what the company publishes reaches every investor. */
.fb-modal {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
    z-index: 100;
}

.fb-modal[hidden] { display: none; }

.fb-card {
    background: #fff;
    border-radius: 10px;
    padding: 22px 24px;
    width: min(540px, 100%);
    max-height: 88vh;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.fb-card h3 { margin: 0; font-size: 1rem; }

.fb-note, .fb-label {
    margin: 0;
    font-size: 0.78rem;
    color: var(--muted, #6b7280);
}

.fb-label { font-weight: 600; color: inherit; margin-top: 6px; }

.fb-rates { display: flex; flex-direction: column; gap: 7px; margin: 4px 0; }

.fb-rate {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.fb-rate-label { font-size: 0.8rem; }
.fb-scale { display: flex; gap: 4px; flex: none; }

.fb-dot {
    width: 26px;
    height: 26px;
    border: 1px solid var(--border, #e5e7eb);
    background: transparent;
    border-radius: 50%;
    font-size: 0.7rem;
    color: var(--muted, #6b7280);
    cursor: pointer;
    font-variant-numeric: tabular-nums;
}

.fb-dot:hover { border-color: #B45309; }
.fb-dot.is-on { background: #B45309; border-color: #B45309; color: #fff; }

.fb-input {
    font: inherit;
    font-size: 0.84rem;
    width: 100%;
    padding: 8px 10px;
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 8px;
    resize: vertical;
}

.fb-share {
    display: flex;
    gap: 9px;
    align-items: flex-start;
    font-size: 0.74rem;
    line-height: 1.5;
    color: var(--muted, #6b7280);
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 8px;
    padding: 10px 12px;
    cursor: pointer;
}

.fb-share input { margin-top: 2px; flex: none; }

.fb-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 4px; }

.fb-error { font-size: 0.78rem; color: #B45309; }
.fb-error[hidden] { display: none; }

.ch-sub {
    font-size: 0.82rem;
    font-weight: 600;
    margin: 20px 0 4px;
}

.ch-note { font-size: 0.76rem; color: var(--muted, #6b7280); margin: 0 0 10px; }

.fb-scores { display: flex; flex-wrap: wrap; gap: 10px; margin: 6px 0; }

.fb-score {
    font-size: 0.72rem;
    color: var(--muted, #6b7280);
    background: rgba(180, 83, 9, 0.07);
    border-radius: 10px;
    padding: 2px 9px;
}

.fb-score strong { color: #B45309; font-variant-numeric: tabular-nums; }

/* ===== Investor profile ===== */
.prof-wrap { max-width: 40rem; }
.prof-h1 { font-size: 1.4rem; margin: 0 0 14px; }

.prof-notice {
    background: rgba(180, 83, 9, .07);
    border-left: 3px solid #B45309;
    border-radius: 0 6px 6px 0;
    padding: 12px 14px;
    font-size: .84rem;
    line-height: 1.55;
    margin-bottom: 22px;
}
.prof-notice strong { display: block; margin-bottom: 3px; color: #8A4109; }

.prof-identity {
    display: flex; flex-wrap: wrap; gap: 8px 28px;
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 8px; padding: 12px 14px; margin-bottom: 22px;
}
.prof-k {
    display: block; font-size: .66rem; text-transform: uppercase;
    letter-spacing: .08em; color: var(--muted, #6b7280);
}
.prof-v { font-size: .9rem; font-weight: 600; }
.prof-hint {
    flex-basis: 100%; margin: 4px 0 0;
    font-size: .74rem; color: var(--muted, #6b7280);
}

.prof-label { display: block; font-size: .86rem; font-weight: 600; margin-top: 18px; }
.prof-sub { margin: 2px 0 7px; font-size: .77rem; color: var(--muted, #6b7280); }

.prof-input {
    font: inherit; font-size: .87rem; width: 100%;
    padding: 9px 11px; border: 1px solid var(--border, #e5e7eb);
    border-radius: 8px; resize: vertical; line-height: 1.55;
}
.prof-input:focus { outline: 2px solid #B45309; outline-offset: 1px; border-color: #B45309; }

.prof-actions { display: flex; align-items: center; gap: 12px; margin-top: 22px; }
.prof-save {
    font: inherit; font-size: .84rem; font-weight: 600;
    background: #B45309; border: 1px solid #B45309; color: #fff;
    padding: 9px 20px; border-radius: 7px; cursor: pointer;
}
.prof-save:hover { background: #92400E; }
.prof-save:disabled { opacity: .6; cursor: default; }
.prof-status { font-size: .8rem; color: #3F6B45; }
.prof-error { margin-top: 10px; font-size: .8rem; color: #A3320F; }
.prof-error[hidden] { display: none; }

/* The card a company sees on a meeting request. */
.req-profile {
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 8px; padding: 12px 14px; margin: 10px 0;
    background: rgba(180, 83, 9, .04);
}
.req-who { font-weight: 600; font-size: .9rem; }
.req-firm { color: var(--muted, #6b7280); font-weight: 400; }
.req-part { margin-top: 8px; font-size: .84rem; line-height: 1.55; }
.req-part b {
    display: block; font-size: .66rem; text-transform: uppercase;
    letter-spacing: .08em; color: var(--muted, #6b7280); font-weight: 600;
    margin-bottom: 1px;
}
.req-none { font-size: .78rem; color: var(--muted, #6b7280); font-style: italic; }
.ch-note-inline { font-size: .76rem; color: var(--muted, #6b7280); }

.ch-pref {
    display: flex; gap: 10px; align-items: flex-start;
    border: 1px solid var(--border, #e5e7eb); border-radius: 8px;
    padding: 11px 13px; margin-bottom: 16px;
    font-size: .8rem; line-height: 1.55; cursor: pointer;
}
.ch-pref input { margin-top: 3px; flex: none; }
.ch-pref strong { display: block; }

/* The investor's own time controls, mirroring the company's. */
.act-offer {
    display: flex; align-items: center; gap: 7px; flex-wrap: wrap;
    margin-top: 9px;
}
.act-offer[hidden] { display: none; }

.act-input {
    font: inherit; font-size: .82rem; padding: 6px 8px;
    border: 1px solid var(--border, #e5e7eb); border-radius: 6px;
}
.act-mins { width: 4.6em; text-align: right; font-variant-numeric: tabular-nums; }
.act-for { font-size: .75rem; color: var(--muted, #6b7280); }

/* ===== A meeting, on the investor's activity page =====
   Rebuilt as a card. As a row it showed a status pill, the company name and a
   bare date input -- an investor could not see what times they had put
   forward, which is the first thing anyone checks. */
.mtg {
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 10px;
    padding: 15px 17px;
    margin-bottom: 14px;
}

.mtg-head {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px; margin-bottom: 4px;
}
.mtg-co { font-size: 1rem; font-weight: 600; text-decoration: none; color: inherit; }
.mtg-co:hover { text-decoration: underline; }
.mtg-tic {
    font-size: .72rem; color: var(--muted, #6b7280);
    margin-left: 7px; font-variant-numeric: tabular-nums;
}

.mtg-note {
    font-size: .84rem; color: var(--muted, #6b7280);
    font-style: italic; margin-bottom: 8px;
}

/* Whose move it is. A status pill alone does not say whether you are waiting
   or holding something up. */
.mtg-next {
    font-size: .82rem; line-height: 1.5;
    background: rgba(180, 83, 9, .06);
    border-left: 3px solid #B45309;
    border-radius: 0 5px 5px 0;
    padding: 8px 11px; margin-bottom: 12px;
}

.mtg-block { margin-bottom: 12px; }
.mtg-label {
    font-size: .68rem; text-transform: uppercase; letter-spacing: .08em;
    color: var(--muted, #6b7280); font-weight: 600; margin-bottom: 5px;
}

.mtg-slot {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px; padding: 7px 0;
    border-bottom: 1px solid var(--border-subtle, #f3f4f6);
    font-size: .86rem; font-variant-numeric: tabular-nums;
}
.mtg-slot:last-child { border-bottom: none; }
.mtg-slot-on { font-weight: 600; }
.mtg-acts { display: flex; align-items: center; gap: 10px; flex: none; }

.mtg-offer { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.mtg-input {
    font: inherit; font-size: .83rem; padding: 6px 9px;
    border: 1px solid var(--border, #e5e7eb); border-radius: 6px;
}
.mtg-mins { width: 4.4em; text-align: right; font-variant-numeric: tabular-nums; }
.mtg-for { font-size: .78rem; color: var(--muted, #6b7280); }

.mtg-warn {
    font-size: .78rem; color: var(--muted, #6b7280);
    line-height: 1.5; margin-bottom: 7px;
}

.mtg-btn {
    font: inherit; font-size: .78rem; padding: 6px 13px;
    border: 1px solid var(--border, #d1d5db); background: #fff;
    border-radius: 6px; cursor: pointer; white-space: nowrap;
}
.mtg-btn:hover { border-color: #9aa2ad; }
.mtg-btn-go { background: #B45309; border-color: #B45309; color: #fff; font-weight: 600; }
.mtg-btn-go:hover { background: #92400E; border-color: #92400E; }

.mtg-foot {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px; padding-top: 11px; margin-top: 3px;
    border-top: 1px solid var(--border-subtle, #f3f4f6);
}
.mtg-link { font-size: .8rem; color: var(--accent, #3b82f6); text-decoration: none; }
.mtg-link:hover { text-decoration: underline; }
.mtg-cancel {
    font: inherit; font-size: .78rem; background: none; border: none;
    color: var(--muted, #6b7280); cursor: pointer; text-decoration: underline;
    padding: 0;
}
.mtg-cancel:hover { color: #B45309; }

/* Shared by the company's meetings tab and the investor's activity page, so
   the same meeting looks like the same object from both sides. */
.mtg-past { opacity: .72; }

.mtg-when { font-size: .84rem; font-weight: 600; }
.mtg-who { font-size: .9rem; font-weight: 600; }
.mtg-firm {
    font-weight: 400; color: var(--muted, #6b7280);
    font-size: .82rem; margin-left: 7px;
}
.mtg-part { margin-top: 7px; font-size: .84rem; line-height: 1.55; }
.mtg-part b {
    display: block; font-size: .66rem; text-transform: uppercase;
    letter-spacing: .08em; color: var(--muted, #6b7280);
    font-weight: 600; margin-bottom: 1px;
}
.mtg-plain { font-size: .8rem; color: var(--muted, #6b7280); }

/* Every action sits on the same line as the thing it acts on, and the two
   kinds of "accept" are worded so they cannot be confused: accepting a TIME
   books the meeting, accepting a REQUEST only agrees to meet. */
.mtg-foot-right { display: flex; align-items: center; gap: 14px; }

/* ===== Answering a proposed time =====
   Accepting and proposing an alternative are the two answers to one question,
   so they are the same size, side by side, directly under the time they are
   about. Before, one sat beside the time and the other in a separate labelled
   section further down, which is what made the eye hunt for the connection. */
.mtg-choice {
    border: 1px solid var(--border, #e5e7eb);
    border-radius: 9px;
    padding: 13px 15px;
    margin-bottom: 12px;
    background: #fcfcfd;
}
.mtg-choice[hidden] { display: none; }

.mtg-choice-label {
    font-size: .68rem; text-transform: uppercase; letter-spacing: .08em;
    color: var(--muted, #6b7280); font-weight: 600; margin-bottom: 10px;
}

.mtg-offer-row + .mtg-offer-row {
    margin-top: 14px; padding-top: 14px;
    border-top: 1px solid var(--border-subtle, #f1f3f5);
}

/* The time is the subject of the decision, so it is the largest thing here. */
.mtg-bigtime { margin-bottom: 10px; }
.mtg-bigday {
    display: block; font-size: .95rem; font-weight: 600;
    color: var(--ink, #111827);
}
.mtg-bighour {
    display: block; font-size: 1.25rem; font-weight: 600;
    font-variant-numeric: tabular-nums; letter-spacing: -.01em;
    margin-top: 1px;
}

/* Equal halves. Neither answer is visually the harder one to find. */
.mtg-pair { display: flex; gap: 9px; flex-wrap: wrap; }

.mtg-choose {
    flex: 1 1 11rem;
    display: flex; flex-direction: column; align-items: flex-start; gap: 1px;
    font: inherit; text-align: left; cursor: pointer;
    padding: 9px 14px; border-radius: 8px;
    border: 1px solid var(--border, #d1d5db); background: #fff;
}
.mtg-choose:hover { border-color: #9aa2ad; }
.mtg-choose-main { font-size: .85rem; font-weight: 600; }
.mtg-choose-sub { font-size: .7rem; color: var(--muted, #6b7280); }

/* One is the recommended answer, so it carries the colour -- but it is the
   same size and shape as the other, which is what makes the pair readable. */
.mtg-choose-yes { background: #B45309; border-color: #B45309; color: #fff; }
.mtg-choose-yes:hover { background: #92400E; border-color: #92400E; }
.mtg-choose-yes .mtg-choose-sub { color: rgba(255,255,255,.82); }

/* ===== Undo a booking =====
   Prominent on purpose. A user who has just mis-clicked is looking for a way
   out, and a subtle affordance is the same as no affordance. It disappears the
   moment the booking is announced, because after that it would not be an undo:
   the iCalendar sequence only ever increases, so a reversal can only be
   published as a cancellation. */
.mtg-undo {
    display: flex; align-items: center; justify-content: space-between;
    gap: 14px; margin: 0 0 12px;
    background: #FDF3E7; border: 1px solid #E9C9A3;
    border-radius: 9px; padding: 11px 14px;
}
.mtg-undo-text { font-size: .84rem; line-height: 1.5; color: #6B3E10; }
.mtg-undo-text strong { color: #8A4109; }
.mtg-undo-left { font-variant-numeric: tabular-nums; font-weight: 600; }

.mtg-undo-btn {
    font: inherit; font-size: .84rem; font-weight: 600;
    padding: 8px 20px; border-radius: 7px; cursor: pointer;
    background: #fff; border: 1px solid #B45309; color: #B45309;
    flex: none;
}
.mtg-undo-btn:hover { background: #B45309; color: #fff; }

/* Once the window closes the panel states the honest alternative rather than
   leaving a button that would refuse. */
.mtg-undo.is-closed {
    background: var(--surface, #f9fafb); border-color: var(--border, #e5e7eb);
}
.mtg-undo.is-closed .mtg-undo-text { color: var(--muted, #6b7280); }
