:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#19332e;background:#f4f7f3;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:inherit}h1,h2,h3,p{margin:0}h1{font-size:clamp(1.55rem,3vw,2.4rem);letter-spacing:-.035em}h2{font-size:1.22rem;letter-spacing:-.02em}h3{font-size:1rem}p{line-height:1.55}.site-header{background:#173e35;color:#fff;padding:18px max(20px,calc((100vw - 1080px)/2));display:flex;justify-content:space-between;gap:16px;align-items:center}.brand{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:-.02em}.brand img{width:38px;height:38px}.profile{display:flex;align-items:center;gap:10px;font-size:.88rem;color:#d9eadf}.profile button{border:1px solid #7d9d90;background:transparent;color:#fff;border-radius:9px;padding:7px 10px}.wrap{width:min(1080px,calc(100% - 36px));margin:24px auto 90px}.hero{background:#214c40;border-radius:20px;color:white;padding:24px;margin-bottom:20px}.hero small{color:#cce9d4;letter-spacing:.08em;text-transform:uppercase;font-weight:700}.hero p{color:#d6e6dd;margin-top:8px}.nav{display:flex;gap:8px;overflow:auto;padding-bottom:3px;margin:18px 0}.nav button{white-space:nowrap;background:white;border:1px solid #d7e4db;border-radius:12px;padding:11px 18px;font-weight:650;color:#33554b}.nav button.active{background:#235a47;color:#fff;border-color:#235a47}.layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:20px}.panel,.entry-card,.location-card,.auth-card,.stat{background:white;border:1px solid #dfe7e0;border-radius:16px;box-shadow:0 4px 22px #203a2a09}.panel{padding:20px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.muted{color:#64766e;font-size:.9rem}.small{font-size:.78rem}.stack{display:flex;flex-direction:column;gap:14px}.entry-card{padding:18px}.entry-card .entry-top{display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:10px}.entry-card p{white-space:pre-wrap}.tag{display:inline-flex;align-items:center;padding:5px 9px;background:#ecf6ee;border-radius:8px;color:#246647;font-size:.78rem;font-weight:700}.meta{color:#6e7c75;font-size:.78rem}.entry-card .meta{margin-top:10px}.entry-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.btn{border:0;background:#236449;color:white;border-radius:11px;padding:11px 16px;font-weight:750}.btn:hover{filter:brightness(1.08)}.btn.secondary{background:#eef4ef;color:#235643}.btn.outline{background:transparent;border:1px solid #b8cec0;color:#235643}.btn.danger{color:#a33131}.btn.tiny{padding:7px 10px;font-size:.82rem}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spaced{justify-content:space-between}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:15px}.field label{font-size:.85rem;font-weight:750;color:#3e6054}.field input,.field textarea,.field select,select{width:100%;padding:11px 12px;border:1px solid #bfd0c5;border-radius:10px;background:#fff;color:#173e35;min-width:0}.field textarea{resize:vertical;min-height:95px}.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid #8bbfa0;outline-offset:1px}.auth-card{max-width:480px;padding:30px;margin:40px auto}.auth-card h1{margin-bottom:7px}.auth-card p{margin:8px 0 20px}.divider{height:1px;background:#dce8df;margin:23px 0}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.stat{text-align:center;padding:18px}.stat strong{font-size:1.8rem;display:block}.location-card{padding:18px;cursor:pointer}.location-card:hover{border-color:#72b291}.location-card h3{margin-bottom:7px}.location-card p{color:#64766e;font-size:.85rem}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:9px;margin-top:12px}.photo-card{position:relative;overflow:hidden;border-radius:12px;aspect-ratio:4/3;background:#e5eee7;border:0;padding:0}.photo-card img{width:100%;height:100%;object-fit:cover}.photo-card span{position:absolute;bottom:5px;right:5px;background:#123c30d9;color:white;border-radius:5px;padding:3px 6px;font-size:.7rem}.modal-backdrop{position:fixed;inset:0;background:#0c201abf;z-index:20;display:grid;place-items:center;padding:16px}.modal{background:white;border-radius:18px;width:min(700px,100%);max-height:94dvh;overflow-y:auto;padding:22px}.modal.large{width:min(1040px,100%)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:12px}.x{border:none;background:#ecf2ed;border-radius:9px;font-size:1.2rem;width:36px;height:36px}.hint{background:#f1f6ef;border-radius:11px;padding:12px;font-size:.83rem;color:#486153}.empty{border:1px dashed #a9c6b5;text-align:center;padding:36px 15px;border-radius:14px;color:#667d6c}.upload-progress{color:#315d47;font-size:.88rem;padding:8px}.annotation-stage{position:relative;width:100%;overflow:hidden;border-radius:12px;background:#102019;touch-action:none}.annotation-stage img{display:block;width:100%;height:auto;user-select:none;pointer-events:none}.annotation-stage svg{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair}.annotation-tools{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.annotation-tools button.selected{background:#184935;color:white}.report{max-width:820px;margin:auto;background:white;padding:28px;border-radius:15px}.report section{border-bottom:1px solid #d7e5da;padding:17px 0;break-inside:avoid}.report img{max-width:100%;max-height:350px;border-radius:8px}.report .report-photo{position:relative;width:fit-content;max-width:100%;margin:10px 0}.report .report-photo svg{position:absolute;inset:0;width:100%;height:100%}.admin-group{padding:15px;border:1px solid #dbe6de;border-radius:11px;margin:8px 0}.code{font-family:ui-monospace,monospace;word-break:break-all;background:#f0f5f0;padding:8px;border-radius:8px}.banner{border:1px solid #f0c991;background:#fff8e8;border-radius:10px;padding:12px;margin-bottom:15px}.side-item{padding:11px 0;border-bottom:1px solid #edf1ed;font-size:.9rem}.side-item:last-child{border-bottom:0}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#1e4838;color:#fff;z-index:40;padding:12px 20px;border-radius:12px;box-shadow:0 6px 40px #0003;display:none;width:max-content;max-width:90vw}#toast.error{background:#a12e2e}.print-only{display:none}@media(max-width:760px){.layout{grid-template-columns:1fr}.sidebar{display:none}.wrap{width:min(100% - 22px,1080px);margin:14px auto 75px}.site-header{padding:12px}.hero{padding:19px}.panel{padding:15px}.grid3{grid-template-columns:repeat(2,1fr)}.modal{padding:16px}.profile span{display:none}}@media(max-width:450px){.grid2{grid-template-columns:1fr}.grid3{grid-template-columns:1fr 1fr}.auth-card{padding:22px}.panel-head{align-items:start;flex-direction:column}}@media print{body{background:white!important}.site-header,.nav,.hero,.sidebar,.no-print,.btn,#toast,.modal-backdrop{display:none!important}.wrap{width:100%;margin:0}.layout{display:block}.panel,.report{border:0;box-shadow:none;padding:0;width:100%;max-width:none}.report{font-size:11pt}.report section{page-break-inside:avoid}.print-only{display:block}a{text-decoration:none}}

/* QR invitation cards and printable group sheets */
.qr-preview{display:flex;flex-direction:column;gap:18px}
.qr-toolbar{margin:6px 0}
.qr-sheet{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch}
.qr-invite-card{background:#fff;border:1px solid #d4e4d9;border-radius:16px;padding:18px;text-align:center;break-inside:avoid;page-break-inside:avoid;display:flex;flex-direction:column;align-items:center;gap:8px;color:#173e35}
.qr-invite-heading h2{font-size:1.2rem;margin:5px 0 2px}.qr-invite-heading p{font-size:.88rem;color:#52685c}
.qr-invite-kicker{font-size:.65rem;letter-spacing:.12em;font-weight:800;color:#286547}
.qr-invite-image{width:min(100%,208px);aspect-ratio:1;margin:3px auto}.qr-invite-image svg{width:100%;height:100%;display:block}
.qr-invite-instructions{font-size:.83rem;max-width:29ch;line-height:1.35}
.qr-invite-label{font-size:.68rem;font-weight:800;letter-spacing:.1em;color:#536c5d;margin-top:3px}
.qr-invite-code{font:700 .82rem ui-monospace,SFMono-Regular,monospace;overflow-wrap:anywhere;letter-spacing:.04em;background:#edf5ef;padding:7px 10px;border-radius:6px;max-width:100%}
.qr-invite-footer{font-size:.72rem;color:#5a7363;overflow-wrap:anywhere}
@media(max-width:620px){.qr-sheet{grid-template-columns:1fr}}
@page{size:A4 portrait;margin:12mm}
@media print{
 body.printing-invitations>*:not(.modal-backdrop){display:none!important}
 body.printing-invitations>.modal-backdrop{position:static!important;display:block!important;background:transparent!important;padding:0!important;overflow:visible!important}
 body.printing-invitations .modal{width:100%!important;max-height:none!important;overflow:visible!important;padding:0!important;box-shadow:none!important}
 body.printing-invitations .modal-header,body.printing-invitations .qr-preview>.muted,body.printing-invitations .qr-toolbar{display:none!important}
 body.printing-invitations .qr-sheet{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9mm;align-items:stretch}
 body.printing-invitations .qr-invite-card{border:1px solid #b6ccbd;border-radius:5mm;padding:5mm;min-height:116mm;break-inside:avoid;page-break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact}
 body.printing-invitations .qr-invite-image{width:45mm}
 body.printing-invitations .qr-invite-instructions{font-size:10pt}
}

/* Readable joining codes and predictable QR rendering */
.qr-invite-code{font-size:clamp(1.05rem,2.6vw,1.4rem);font-weight:800;letter-spacing:.07em;white-space:nowrap;overflow-wrap:normal}
.qr-invite-image{flex-shrink:0;min-width:180px;min-height:180px}
.qr-invite-image svg{display:block;max-width:100%;height:auto;aspect-ratio:1}
@media(max-width:450px){.qr-invite-image{min-width:0;width:190px}.qr-invite-code{font-size:1.06rem}}
