:root { color-scheme: light; --ink:#183c35; --paper:#f6f4ec; --muted:#66746b; --line:#d9dfd3; --accent:#dbe9b0; }
* { box-sizing:border-box; } [hidden] { display:none !important; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.6 system-ui,sans-serif; }
.masthead { max-width:1060px; margin:auto; padding:24px 28px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px 18px; border-bottom:1px solid var(--line); }
.masthead a { color:var(--ink); font-weight:800; text-decoration:none; letter-spacing:-.04em; font-size:24px; }.masthead span { color:var(--muted); font-size:13px; }
main { max-width:900px; margin:auto; padding:45px 24px; }.intro { margin-bottom:34px; }.eyebrow { font-size:11px; letter-spacing:.16em; font-weight:750; }.intro h1 { font:normal clamp(42px,7vw,70px)/1.07 Georgia,serif; letter-spacing:-.045em; margin:16px 0 22px; }.intro>p:last-child { color:var(--muted); }
h2 { font-size:22px; letter-spacing:-.03em; margin:0 0 16px; }h3 { font:normal 26px/1.25 Georgia,serif; margin:12px 0; }h4 { font-size:14px; margin-bottom:8px; }
.panel,.opportunity { background:#fffef9; border:1px solid var(--line); border-radius:20px; padding:26px; }.capture { box-shadow:0 10px 35px #183c3507; }
label { display:block; font-size:14px; font-weight:650; margin-bottom:8px; }input,textarea,select,button { font:inherit; }input,textarea,select { border:1px solid #b6c2b4; border-radius:10px; padding:12px; color:var(--ink); background:white; }input,textarea { width:100%; }textarea { resize:vertical; line-height:1.6; }input { margin-bottom:16px; }
button { cursor:pointer; border:0; border-radius:9px; color:white; background:var(--ink); padding:12px 18px; font-weight:650; }button:hover { filter:brightness(1.15); }button:disabled { opacity:.55; cursor:wait; }.quiet { padding:8px 12px; background:transparent; color:var(--ink); border:1px solid var(--line); font-size:13px; }
:focus-visible { outline:3px solid #719051; outline-offset:3px; }.hint { font-size:13px; color:var(--muted); }.capture-bottom,.section-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }.capture-bottom span { font-size:13px; color:var(--muted); }.section-heading h2 { margin-bottom:0; }.section-heading { margin-bottom:20px; }.notebook { margin-top:48px; }#filter { margin-bottom:20px; }#count { font-size:14px; font-weight:400; color:var(--muted); }
.opportunity { margin-bottom:16px; }.meta { display:flex; flex-wrap:wrap; gap:10px; align-items:center; font-size:12px; color:var(--muted); }.badge { background:#edf0e6; border-radius:20px; padding:3px 10px; }.first-step { background:var(--accent); padding:16px 18px; border-radius:12px; margin:20px 0; }.first-step p { margin:5px 0; }ul,ol { padding-left:23px; }li { margin:7px 0; }.original { white-space:pre-wrap; overflow-wrap:anywhere; color:var(--muted); }.opportunity p,.opportunity li,.opportunity h3 { overflow-wrap:anywhere; }details { margin:16px 0; }summary { cursor:pointer; font-weight:650; font-size:14px; }.status-control { display:flex; gap:12px; align-items:center; margin-top:20px; }.status-control label { margin:0; }.status-control select { padding:7px 10px; }.empty { color:var(--muted); padding:36px 0; }
#notice { position:fixed; bottom:20px; left:50%; transform:translateX(-50%); max-width:90vw; width:max-content; padding:12px 20px; border-radius:12px; color:white; background:var(--ink); box-shadow:0 4px 25px #0002; }#notice:empty { display:none; }footer { text-align:center; padding:20px 24px 40px; font-size:13px; color:var(--muted); }.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
@media(max-width:600px) { .masthead { padding:14px 16px; flex-wrap:wrap; gap:6px; }.masthead span { display:none; }main { padding:30px 16px; }.panel,.opportunity { padding:20px; }.capture-bottom { align-items:stretch; flex-direction:column; }.section-heading { align-items:flex-start; }.capture .section-heading h2 { font-size:20px; }button { min-height:44px; } }

.iterations { margin-top:28px; }.field-grid,.filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:18px 0; }.field-grid select,.filters select { width:100%; max-width:100%; }.field-grid input { margin-bottom:0; }.metadata-fields>div { margin:16px 0; }.metadata-fields textarea { min-height:80px; }.metadata-editor { border-top:1px solid var(--line); padding-top:16px; }.metadata-editor button { margin:8px 8px 0 0; }.opportunity-facts { margin:16px 0; }.opportunity-facts dt { font-size:12px; font-weight:750; color:var(--muted); margin-top:10px; }.opportunity-facts dd { margin:2px 0; white-space:pre-wrap; overflow-wrap:anywhere; }.iteration-summary { font-size:14px; border-top:1px solid var(--line); margin-top:16px; padding-top:14px; }.metadata-fields fieldset { padding:0; margin:0; border:0; min-width:0; }.suggestion { padding:12px; border-radius:10px; background:#edf0e6; }#iteration-editor { width:100%; }#filter { margin-bottom:0; }
@media(min-width:760px) { .filters { grid-template-columns:repeat(4,minmax(0,1fr)); }.iterations .field-grid { grid-template-columns:2fr 1fr 1fr; } }
@media(max-width:520px) { .field-grid { grid-template-columns:1fr; }.filters { grid-template-columns:1fr 1fr; } }

.metadata-fields select { width:100%; max-width:100%; }
#opportunity-list { border:1px solid var(--line); border-radius:14px; overflow:hidden; background:#fffef9; }
.opportunity-row { display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; text-align:left; background:transparent; color:var(--ink); border:0; border-bottom:1px solid var(--line); border-radius:0; padding:14px 20px; font:inherit; }
.opportunity-row:last-child { border-bottom:0; }
.opportunity-row:nth-child(even) { background:#fbfaf4; }
.opportunity-row:hover, .opportunity-row:focus-visible { background:var(--accent); }
.opportunity-row h3 { order:1; flex:1 1 auto; min-width:0; font:inherit; font-size:15px; font-weight:650; margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.opportunity-row .meta { order:2; flex:0 0 auto; display:flex; gap:8px; align-items:center; font-size:12px; color:var(--muted); white-space:nowrap; }
.opportunity-row .badge { white-space:nowrap; }
@media(max-width:600px) {
    .opportunity-row { flex-direction:column; align-items:flex-start; gap:6px; }
    .opportunity-row h3 { white-space:normal; }
    .opportunity-row .meta { flex-wrap:wrap; }
}

.masthead-nav { display:flex; gap:18px; flex-wrap:wrap; }
.masthead-nav a { color:var(--muted); text-decoration:none; font-size:14px; font-weight:650; white-space:nowrap; }
.masthead-nav a:hover { color:var(--ink); }
@media(max-width:980px) { .masthead > span { display:none; } }
.mission-hero { font-family:Georgia,"Times New Roman",serif; font-size:36px; line-height:1.3; letter-spacing:-.015em; margin:10px 0 20px; }
@media(max-width:600px) { .mission-hero { font-size:26px; } }
.empty-state { text-align:center; padding:44px 24px; }
.empty-state p { color:var(--muted); max-width:440px; margin:0 auto 18px; }
.opportunity-row.selected { border-color:#c98d2a; box-shadow:inset 0 0 0 1px #c98d2a; }
.focus-tasks { margin-top:10px; padding-top:10px; border-top:1px solid var(--line); }
.focus-tasks p { margin:4px 0; }
.masthead .sign-out { min-height:0; padding:6px 12px; font-size:13px; }
@media(max-width:600px) {
    .masthead-nav { gap:14px; width:100%; order:3; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:2px; }
    .masthead-nav a { white-space:nowrap; font-size:14px; min-height:44px; display:inline-flex; align-items:center; }
    .masthead .sign-out { margin-left:auto; }
}

.opportunity-row.dragging { opacity:.4; }
.opportunity-row.drop-target { background:var(--accent); outline:2px dashed var(--ink); outline-offset:-2px; }
.mission-statement { font:normal 20px/1.4 Georgia,serif; margin:8px 0 16px; }
.mission { margin-bottom:28px; }
.chat { max-height:260px; overflow-y:auto; display:flex; flex-direction:column; gap:10px; margin:16px 0; padding:12px; border:1px solid var(--line); border-radius:12px; background:#fbfaf4; }
.chat-bubble { padding:10px 14px; border-radius:12px; max-width:80%; font-size:14px; }
.chat-bubble.user { align-self:flex-end; background:var(--ink); color:white; }
.chat-bubble.assistant { align-self:flex-start; background:#edf0e6; }
.chat-form { display:flex; gap:10px; }
.chat-form input { flex:1; margin-bottom:0; }
