body.billet-app{--bg:#fff;--paper:#fff;--ink:#1c1a1b;--muted:#5e565b;--line:#ded8dc;--green:#a30e3b;--lime:#f8eaf0;--soft:#f7f4f5}
.billet-app h1,.billet-app h2,.billet-app h3{font-family:Georgia,serif;font-weight:700;color:var(--ink)}
.billet-app h1{font-size:clamp(36px,8vw,61px);line-height:1;letter-spacing:-.055em}
.billet-app h2{font-size:30px;line-height:1.08}.billet-app h3{font-size:23px}
.billet-app button:not(.linkbutton),.billet-app input,.billet-app select,.billet-app textarea{min-height:44px;border-radius:5px}
.billet-app button:hover{background:var(--soft)}.billet-app button.primary:hover{background:#790a2c}
.billet-app :focus-visible{outline:2px solid var(--green);outline-offset:3px}
.billet-app .brand span,.billet-app .activity,.billet-app .back,.billet-app .error,.billet-app .danger{color:var(--green)}
.billet-app .topline{margin-bottom:22px}.billet-app .page-head{margin-bottom:18px}
.billet-app .banner,.billet-app .hint{display:none}
.billet-app .grid{grid-template-columns:minmax(0,1fr);gap:0;max-width:780px}
.billet-app .tabs{gap:16px;margin-bottom:14px}.billet-app .tabs button.active{color:var(--green);border-color:var(--green)}
.billet-app nav button.active{background:#f8eaf0;color:var(--green)}
.billet-app .avatar,.billet-app .candidate .avatar,.billet-app .profile-hero{background:var(--soft);color:var(--ink)}
.billet-app .avatar{border-radius:50%}
.billet-app .count,.billet-app .pill,.billet-app .message,.billet-app .proposal,.billet-app .prefline,.billet-app .demo-box{background:var(--soft);color:var(--ink)}
.billet-app .status,.billet-app .received{color:var(--green);background:#f8eaf0;font-weight:750;border-radius:3px;padding:4px 7px;font-size:12px;display:inline-block}
.billet-app .context,.billet-app .empty,.billet-app .wish{border-radius:0;border:0;border-block-start:1px solid var(--line);background:white}
.billet-app .wish-body{padding:15px 0}.billet-app .context{padding:12px 0}.billet-app .empty{padding:25px 0;text-align:left}
.billet-app .facts i,.billet-app .badge-note{color:var(--muted)}
.billet-app button.billet-row{display:grid;grid-template-columns:62px minmax(0,1fr) 14px;gap:10px;width:100%;padding:13px 0;text-align:left;border:0;border-top:1px solid var(--line);border-radius:0;align-items:center}
.billet-row strong{display:block;font:700 clamp(25px,6.3vw,34px)/1.03 Georgia,serif;letter-spacing:-.04em}.billet-row small{display:block;font-size:13px;margin:5px 0}
.billet-date{align-self:start;color:var(--green);text-transform:uppercase;font-size:11px;font-weight:700}.billet-date b{display:block;font:700 37px/.95 Georgia,serif}
.billet-row .byline{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.initial{display:inline-grid;place-items:center;background:var(--soft);border:1px solid var(--line);border-radius:50%;width:34px;height:34px;font-weight:800}
#swipe-wrap{position:relative;overflow:hidden;max-width:760px}#public-sheet{position:relative;touch-action:pan-y;background:white;padding:10px 0}#swipe-label:not(:empty){position:absolute;z-index:1;top:48%;left:8px;padding:7px;background:white;border:1px solid var(--line);color:var(--green);pointer-events:none}
#public-sheet h1{margin:10px 0}#public-sheet blockquote{font:italic 25px/1.26 Georgia,serif;margin:18px 0}.facts-lead{font-weight:750}.public-profile{display:flex;align-items:center;gap:9px;width:100%;text-align:left;margin:10px 0}
.billet-actions{position:sticky;bottom:64px;display:flex;gap:10px;max-width:760px;background:white;padding:9px 0;border-top:1px solid var(--line);z-index:2}.billet-actions button{flex:1;display:flex;align-items:center;justify-content:center;gap:7px}.billet-actions svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.5}
.billet-app dialog{border-radius:7px}.billet-app dialog::backdrop{background:#21181d66}.billet-app .field :is(input,select,textarea),.billet-app .chat-input input{border:1px solid var(--line);background:white;padding:8px;font-size:15px}
.billet-app .fields{gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.billet-app .field{margin-top:7px;font-weight:700}.billet-app textarea{min-height:62px}
#wish-form fieldset,#wish-form details{margin:10px 0;border:0;border-top:1px solid var(--line);padding:5px 0;min-width:0}#wish-form legend,#wish-form summary{font:700 21px Georgia,serif}#wish-form summary{cursor:pointer;padding:7px 0}#wish-form label:has(textarea){grid-column:1/-1}#wish-recap{border-block:1px solid var(--line);padding:10px 0;margin-top:12px}
.meeting-summary,.billet-app .proposal{padding:8px 10px;border-block:1px solid var(--line);margin-top:8px;border-radius:0}.meeting-summary strong{color:var(--green)}.meeting-summary p,.billet-app .proposal p{margin:3px 0}.billet-app .messages{min-height:100px}.billet-app .chat-input{position:sticky;bottom:-22px;background:white;padding:6px 0;z-index:2}
@media(max-width:650px){.billet-app main{padding-inline:17px}.billet-app .topline{margin-bottom:16px}.billet-app .page-head{gap:8px}.billet-app #create{font-size:12px;padding:8px}.billet-app aside{background:white}.billet-app nav button{font-size:11px}.billet-app dialog{padding:15px;width:calc(100% - 18px)}}
.billet-app #create::before{content:none}
.billet-app button.avatar{border-radius:50%;width:44px;height:44px}
.billet-app #wish-form .field:has([name=title]),.billet-app #wish-form .field:has([name=activity]),.billet-app #wish-form .field:has([name=place]){grid-column:1/-1}
@media(max-width:700px){.billet-app aside{background:white}.billet-app #create{font-size:12px;padding:8px}}
.billet-app [hidden]{display:none!important}
.billet-app .flex-check{display:flex;align-items:center;gap:8px;grid-column:1/-1;min-height:44px}
.billet-app .flex-check input{min-height:0;width:18px;height:18px;accent-color:var(--green)}
.billet-app #activity-choice{margin-top:5px}
.billet-app #suggest{justify-self:start;font-size:12px;border:0;text-decoration:underline;color:var(--green)}
.profile-avatar-image{display:block;width:100%;height:100%;object-fit:cover}
.billet-app .initial{overflow:hidden}.billet-app button.avatar{padding:0}
.billet-app .profile-hero:has(img){height:min(360px,50dvh);overflow:hidden}
.photo-manager{margin-top:20px;padding-block:10px;border-block:1px solid var(--line)}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(130px,100%),1fr));gap:12px}
.photo-grid article{display:grid;align-content:start;gap:5px;font-size:12px}
.photo-grid img{aspect-ratio:1;height:auto;border-radius:4px}
#photo-error{color:var(--green)}
.billet-app .meeting-links{padding:0 0 12px 72px;display:flex;flex-wrap:wrap;gap:10px;color:var(--green)}
.billet-app .meeting-links button{min-height:36px;text-decoration:underline}
.billet-app .compatibility-card{margin:10px 0;padding:12px;border:1px solid #ead7df;background:#fff8fb;border-radius:5px}
.billet-app .compatibility-card h3 button{font:inherit;text-decoration:underline;text-decoration-color:#c78c9e;text-underline-offset:3px}
.billet-app .peer-wish-link{color:var(--green);text-decoration:underline}
.compatibility-badge{display:inline-grid;place-items:center;margin-top:5px;min-width:25px;height:25px;padding:0 5px;border:1px solid var(--green);border-radius:50%;color:var(--green);font-size:12px;font-weight:750}
.peer-wish-detail dl{display:grid;grid-template-columns:minmax(100px,1fr) 2fr;gap:8px;margin-top:18px}
.peer-wish-detail dd{margin:0}.peer-wish-detail blockquote{margin:12px 0;font:italic 21px Georgia,serif}
.activity-picker{grid-column:1/-1;display:grid;gap:5px}
.activity-picker label{font-size:12px;font-weight:750}
.billet-app #activity-trigger{text-align:left;width:100%}
#activity-panel,#station-results{border:1px solid var(--line);background:white;border-radius:5px;padding:5px;display:grid;gap:3px}
#activity-panel button,#station-results button{text-align:left;background:white;width:100%}
#activity-panel button:hover,#station-results button:hover{background:#fff3f7}
#activity-panel [data-categories]{color:var(--green);border:none}
#station-results button{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
#station-results small{font-size:11px;color:var(--green)}
.in-meeting{margin-top:20px;max-width:780px}
.row-badges{display:flex;gap:6px;align-items:center}
.billet-app .row-badges .compatibility-badge{background:var(--green);color:white}
.billet-app .frozen{background:#f4f3f3;color:#655e62;border-color:#ddd}
.billet-app .frozen .actions{margin-top:5px}
.billet-app .message:not(.other):not(.system){background:#f7e8ee}
.billet-app .message.other{border:1px solid var(--line);background:#fff}
.message-state{display:block;text-align:right;margin-top:3px;font-size:10px}
#emoji-list{display:flex;gap:4px;flex-wrap:wrap}
#block-on-cancel{min-height:0}
.square-gallery{position:relative;max-width:420px;margin:auto}
#photo-track{display:flex;overflow-x:auto;aspect-ratio:1;scroll-snap-type:x mandatory;scrollbar-width:none}
#photo-track img{flex:0 0 100%;width:100%;height:100%;object-fit:cover;scroll-snap-align:start}
.billet-app .square-gallery [data-gallery-step]{position:absolute;top:44%;background:white;padding:8px}
[data-gallery-step="-1"]{left:5px}[data-gallery-step="1"]{right:5px}
.photo-dots{display:flex;justify-content:center}
.billet-app .photo-dots button{width:32px;min-height:34px;padding:0;border:0}
.photo-dots button::after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#b9aeb4}
.photo-dots button[aria-current=true]::after{background:var(--green)}
#crop-preview{width:min(100%,320px);display:block;touch-action:none;cursor:grab}
