*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #0f0f0f;--color-surface: #1a1a1a;--color-border: #2a2a2a;--color-text: #e8e8e8;--color-muted: #888;--color-accent: #6ee7b7;--color-accent-dim: #064e3b;--font-sans: system-ui, -apple-system, sans-serif;--font-mono: "Fira Code", "Cascadia Code", ui-monospace, monospace;--radius: 6px;--max-width: 860px;--clr-lightyellow: #c9a227;--clr-text: var(--color-text);--clr-background: var(--color-bg);--clr-sun: #0f0f0f;--clr-moon: #e8e8e8}[data-theme=light]{--color-bg: #f9f9f9;--color-surface: #ffffff;--color-border: #e2e2e2;--color-text: #111111;--color-muted: #666666;--color-accent: #059669;--color-accent-dim: #d1fae5;--clr-background: #ffffff;--clr-sun: #111111;--clr-moon: #111111}html{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);line-height:1.6}body{min-height:100vh;display:flex;flex-direction:column}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}.site-header{border-bottom:1px solid var(--color-border);padding:1rem 2rem}.site-header nav{max-width:var(--max-width);margin:0 auto;display:flex;align-items:center;gap:2rem}.site-header .logo{font-weight:600;color:var(--color-text);margin-right:auto}.site-header nav a{color:var(--color-muted);font-size:.9rem}.site-header nav a:hover{color:var(--color-text);text-decoration:none}main{flex:1;padding:3rem 2rem;max-width:var(--max-width);margin:0 auto;width:100%}.site-footer{border-top:1px solid var(--color-border);padding:1.5rem 2rem;text-align:center;color:var(--color-muted);font-size:.85rem}h1{font-size:2.25rem;line-height:1.2;font-weight:700}h2{font-size:1.5rem;line-height:1.3;font-weight:600;margin-top:2rem;margin-bottom:.75rem}h3{font-size:1.15rem;font-weight:600;margin-top:1.5rem;margin-bottom:.5rem}p{margin-bottom:1rem}.tag{display:inline-block;padding:.2em .6em;background:var(--color-accent-dim);color:var(--color-accent);border-radius:var(--radius);font-size:.75rem;font-family:var(--font-mono)}.card{border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem;background:var(--color-surface);transition:border-color .15s}.card:hover{border-color:var(--color-accent)}.card h2{margin-top:0;font-size:1.15rem}.card p{color:var(--color-muted);margin-bottom:.75rem;font-size:.9rem}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.btn{display:inline-block;padding:.6em 1.2em;background:var(--color-accent);color:#000;font-weight:600;border-radius:var(--radius);border:none;cursor:pointer;font-size:.9rem;transition:opacity .15s}.btn:hover{opacity:.85;text-decoration:none}.btn-ghost{background:transparent;color:var(--color-muted);border:1px solid var(--color-border)}.btn-ghost:hover{color:var(--color-text);border-color:var(--color-text)}.prose h2,.prose h3,.prose p{color:var(--color-text)}.prose code{font-family:var(--font-mono);background:var(--color-surface);padding:.1em .3em;border-radius:3px;font-size:.88em}.prose pre{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem 1.25rem;overflow-x:auto;margin-bottom:1rem}.prose pre code{background:none;padding:0}.prose ul,.prose ol{padding-left:1.5rem;margin-bottom:1rem;color:var(--color-text)}.form-group{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}.form-group label{font-size:.85rem;color:var(--color-muted)}.form-group input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.6em .8em;color:var(--color-text);font-size:1rem;width:100%}.form-group input:focus{outline:none;border-color:var(--color-accent)}.error-msg{color:#f87171;font-size:.875rem;margin-bottom:1rem}.checkbox-wrapper{display:flex;align-items:center}.tgl{display:none}.tgl-btn{background:var(--clr-lightyellow);border-radius:2em;padding:6px;transition:all .3s ease;outline:0;display:block;width:4em;height:2em;position:relative;cursor:pointer;user-select:none}.tgl-btn:after{content:"";position:absolute;left:4.5px;top:50%;transform:translateY(-50%);border-radius:50%;background:var(--clr-text);width:1.5em;height:1.5em;transition:all .2s ease}.tgl:checked+.tgl-btn:after{transform:translate(141%,-50%);background:var(--clr-background)}[data-theme=light] .tgl-btn:after{background:#fff}.tgl-btn .icon{width:14px;height:14px;position:absolute;top:50%;transform:translateY(-50%);z-index:2;pointer-events:none}.tgl-btn .icon_sun{left:calc(-2.5px + .75em)}.tgl-btn .icon_moon{right:calc(4em - 4.5px - 2.865em - 7px)}.muted{color:var(--color-muted)}.mono{font-family:var(--font-mono)}.tags{display:flex;flex-wrap:wrap;gap:.4rem}.taffoneau-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin-bottom:1.5rem}.taffoneau-eyebrow{font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:.25rem}.taffoneau-header h1{margin-bottom:0}.taffoneau-identity{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.taffoneau-nav{display:flex;flex-wrap:wrap;gap:.25rem;border-bottom:1px solid var(--color-border);margin-bottom:1.25rem;padding-bottom:.75rem}.taffoneau-nav a{color:var(--color-muted);font-size:.88rem;padding:.35em .7em;border-radius:var(--radius)}.taffoneau-nav a:hover{color:var(--color-text);text-decoration:none;background:var(--color-surface)}.taffoneau-nav a.active{color:var(--color-text);background:var(--color-surface);font-weight:600}@media(max-width:640px){.taffoneau-header{flex-wrap:nowrap;align-items:center}.taffoneau-identity p{display:none}.taffoneau-nav{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.taffoneau-nav a{flex:0 0 auto;white-space:nowrap}}.taffoneau:not([data-role=coordinator]) [data-coordinator-only]{display:none!important}.taffoneau[data-role=coordinator] [data-shareholder-only]{display:none!important}.allocation-reel{margin-bottom:1rem}.reel-header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap}.reel-wrap{position:relative;display:flex;align-items:stretch;gap:.5rem}.reel-track{display:flex;gap:.4rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:.25rem .1rem .75rem;flex:1;min-width:0}.reel-arrow{flex:0 0 auto;width:2rem;height:2rem;border-radius:50%;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;font-size:1.1rem;line-height:1;display:none;align-items:center;justify-content:center;align-self:center}@media(min-width:640px){.reel-arrow{display:flex}}.reel-arrow:hover{border-color:var(--color-accent)}.reel-col{flex:0 0 70px;scroll-snap-align:start;display:flex;flex-direction:column;gap:.35rem;text-decoration:none;color:inherit}.reel-col:hover{text-decoration:none}.reel-date{font-size:.68rem;color:var(--color-muted);text-align:center;padding-bottom:.3rem;border-bottom:1px solid var(--color-border)}.reel-tile{display:flex;align-items:center;justify-content:center;text-align:center;min-height:60px;border:1px solid var(--color-border);border-radius:var(--radius);padding:.4rem .3rem;font-size:.76rem;color:var(--color-muted);transition:border-color .15s}.reel-col:hover .reel-tile{border-color:var(--color-accent)}.reel-tile.season-off-peak{background:var(--color-surface)}.reel-tile.season-peak{background:color-mix(in srgb,var(--color-accent) 10%,var(--color-surface))}.reel-tile.status-requested{border-color:#f59e0b;color:#f59e0b}.reel-tile.status-approved{border-color:var(--color-accent);color:var(--color-text);font-weight:600}.booking-legend{display:flex;gap:1.25rem;flex-wrap:wrap;margin-bottom:1.5rem;font-size:.85rem;color:var(--color-muted)}.booking-legend .swatch{display:inline-block;width:.7rem;height:.7rem;border-radius:3px;margin-right:.4rem;vertical-align:-1px;border:1px solid var(--color-border)}.swatch.open{background:var(--color-surface)}.swatch.requested{background:color-mix(in srgb,#f59e0b 25%,var(--color-surface));border-color:#f59e0b}.swatch.approved{background:var(--color-accent-dim);border-color:var(--color-accent)}.booking-list{display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.booking-row{display:flex;align-items:center;gap:1rem;padding:.55rem 1rem;border-bottom:1px solid var(--color-border);flex-wrap:wrap}.booking-row:last-child{border-bottom:none}.booking-row.status-requested{background:color-mix(in srgb,#f59e0b 8%,var(--color-surface))}.booking-row.status-approved{background:var(--color-accent-dim)}.booking-row .row-dates{flex:0 0 135px;font-weight:600;font-size:.88rem}.booking-row .row-season{flex:0 0 90px;text-align:center;white-space:nowrap}.booking-row .row-body{display:flex;align-items:center;gap:1rem;flex:1 1 auto;min-width:0}.booking-row .week-status-line{flex:1 1 160px;margin:0;font-size:.85rem}.booking-row .week-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-left:auto}@media(max-width:860px){.booking-row .row-dates,.booking-row .row-season{flex:0 0 auto}.booking-row .row-body{flex:1 1 100%;flex-wrap:wrap}.booking-row:not(.status-open) .week-status-line{flex:1 1 100%}.booking-row.status-open .week-status-line{flex:0 1 auto;white-space:nowrap}}.allocation-summary{display:flex;gap:1.5rem;flex-wrap:wrap;margin-bottom:2rem}.allocation-summary .stat{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);padding:.75rem 1.1rem;flex:1 1 255px;min-width:255px}.allocation-summary .stat .stat-value{font-size:1.4rem;font-weight:700;display:block}.allocation-summary .stat .stat-label{font-size:.78rem;color:var(--color-muted)}.message-form textarea{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.7em .9em;color:var(--color-text);font-size:1rem;width:100%;min-height:5rem;font-family:var(--font-sans);resize:vertical}.message-form textarea:focus{outline:none;border-color:var(--color-accent)}.message-list{display:flex;flex-direction:column;gap:.75rem;margin-top:1.5rem;list-style:none}.message-item{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);padding:1rem 1.1rem}.message-item.pinned{border-color:var(--color-accent)}.message-item .message-meta{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.4rem;flex-wrap:wrap}.message-item .message-author{font-weight:600;font-size:.9rem}.message-item .message-date{color:var(--color-muted);font-size:.78rem}.message-item .message-body{font-size:.95rem;white-space:pre-wrap}.message-item .message-controls{display:flex;gap:.4rem;margin-top:.6rem}.message-item .message-controls button{background:transparent;border:1px solid var(--color-border);color:var(--color-muted);border-radius:var(--radius);padding:.25em .6em;font-size:.75rem;cursor:pointer}.message-item .message-controls button:hover{color:var(--color-text);border-color:var(--color-text)}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.taffoneau-table{width:100%;border-collapse:collapse;font-size:.9rem;margin-bottom:1.5rem}.taffoneau-table th,.taffoneau-table td{text-align:left;padding:.55rem .7rem;border-bottom:1px solid var(--color-border)}.taffoneau-table th{color:var(--color-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}.expense-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}.expense-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);padding:1.25rem 1.4rem}.expense-card.status-approved{border-color:var(--color-accent)}.expense-card.status-rejected{border-color:#f87171}.expense-top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;margin-bottom:.3rem}.expense-cost{font-weight:600}.expense-meta{font-size:.8rem;color:var(--color-muted);margin-bottom:.75rem}.status-pill{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;padding:.2em .6em;border-radius:1rem;border:1px solid var(--color-border);color:var(--color-muted)}.status-pill.status-approved{color:var(--color-accent);border-color:var(--color-accent)}.status-pill.status-rejected{color:#f87171;border-color:#f87171}.status-pill.status-proposed{color:#f59e0b;border-color:#f59e0b}.expense-tally{margin:.85rem 0 .5rem}.tally-bar{position:relative;height:.55rem;border-radius:1rem;background:var(--color-border);overflow:hidden}.tally-fill{position:absolute;inset:0 auto 0 0;background:var(--color-accent);border-radius:1rem 0 0 1rem;transition:width .2s ease}.tally-fill.status-rejected{background:#f87171}.tally-fill.status-proposed{background:#f59e0b}.tally-threshold-marker{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--color-text);opacity:.55}.tally-label{display:flex;justify-content:space-between;font-size:.78rem;color:var(--color-muted);margin-top:.35rem}.expense-votes-list{font-size:.8rem;color:var(--color-muted);margin:.5rem 0 0}.expense-actions{display:flex;gap:.5rem;margin-top:.85rem;flex-wrap:wrap}.expense-form select{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.6em .8em;color:var(--color-text);font-size:1rem;width:100%}.expense-form textarea{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.6em .8em;color:var(--color-text);font-size:1rem;width:100%;min-height:4rem;font-family:var(--font-sans);resize:vertical}.callout{border:1px solid #f59e0b;background:color-mix(in srgb,#f59e0b 8%,var(--color-surface));border-radius:var(--radius);padding:1.1rem 1.3rem;margin-bottom:2rem}.callout h3{margin:0 0 .4rem;font-size:1rem}.callout ul{margin:.5rem 0 .9rem;padding-left:1.25rem;font-size:.9rem}.callout li{margin-bottom:.2rem}.expense-comments{display:flex;flex-direction:column;gap:.5rem;margin:.85rem 0 0}.expense-comment{border-left:2px solid var(--color-border);padding-left:.75rem}.expense-comment .comment-author{font-weight:600;font-size:.82rem}.expense-comment .comment-date{font-size:.75rem;margin-left:.4rem}.expense-comment .comment-body{font-size:.85rem;margin:.15rem 0 0}.expense-comment-form{display:flex;gap:.5rem;margin-top:.75rem}.expense-comment-form .comment-input{flex:1;min-width:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.5em .8em;color:var(--color-text);font-size:.9rem}.expense-comment-form .comment-input:focus{outline:none;border-color:var(--color-accent)}.message-replies{display:flex;flex-direction:column;gap:.5rem;margin:.75rem 0 0}.message-reply{border-left:2px solid var(--color-border);padding-left:.75rem}.message-reply .reply-author{font-weight:600;font-size:.82rem}.message-reply .reply-date{font-size:.75rem;margin-left:.4rem;color:var(--color-muted)}.message-reply .reply-body{font-size:.85rem;margin:.15rem 0 0}.reply-toggle{background:transparent;border:none;color:var(--color-muted);font-size:.8rem;cursor:pointer;padding:0;margin-top:.6rem}.reply-toggle:hover{color:var(--color-text);text-decoration:underline}.reply-form{display:flex;gap:.5rem;margin-top:.6rem}.reply-form .reply-input{flex:1;min-width:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.5em .8em;color:var(--color-text);font-size:.9rem}.reply-form .reply-input:focus{outline:none;border-color:var(--color-accent)}
