.appbar-actions{display:flex;align-items:center;gap:8px}
.icon-button{display:inline-grid;place-items:center;position:relative;width:42px;height:42px;padding:10px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--plum);flex-shrink:0}
.icon-button svg{width:20px;height:20px}
.icon-button:hover{background:#f1e8ed;border-color:#cdb7c3}
.icon-button[hidden],button[hidden]{display:none}
.icon-button.is-active{background:var(--plum);border-color:var(--plum);color:white}
.notification-indicator{display:none;position:absolute;right:7px;top:6px;width:7px;height:7px;background:#b9d4a9;border:2px solid var(--plum);border-radius:50%}
.is-active .notification-indicator{display:block}
.connection-dot{height:7px;width:7px;border-radius:50%;background:#c9b9aa;margin-right:6px}
.connection-dot.is-connected{background:#719777}
.wishes-content{padding:30px}
.wishes-content .section-head p{margin-bottom:0}
.wishes-content .gift-grid{gap:18px;margin:27px 0}
.gift-editor{padding:22px;background:#fff;border-color:var(--line)}
.wish-heading{display:flex;align-items:center;gap:10px;margin-bottom:20px;color:var(--muted);font-size:11px}
.wish-heading .wish-number{font-size:25px;color:#af8598}
.gift-editor>label{font-size:11px;margin:15px 0 7px}
.gift-editor>input:not([type=hidden]):not([type=file]){padding:11px 12px;background:#fcfaf8}
.wish-photo{display:flex;align-items:center;gap:14px;margin:22px 0}
.wish-photo .photo-preview{width:74px;height:84px;flex-shrink:0;border-radius:10px;margin:0;background:#f5efef}
.wish-photo .photo-preview img{width:74px;height:84px;object-fit:cover;border-radius:10px}
.wish-photo .photo-preview svg{width:26px;height:26px;stroke:#ab8596}
.photo-options{min-width:0}
.field-caption{font-size:11px;display:block;margin-bottom:6px}
.field-caption .optional{margin-left:5px}
.photo-actions{display:flex;flex-wrap:wrap;gap:6px}
.attachment-button{display:inline-flex;align-items:center;gap:5px;margin:0;border:1px solid #e8dee3;border-radius:7px;padding:7px 9px;background:#fff;font-size:10px;font-weight:500;color:var(--plum);cursor:pointer}
.attachment-button svg{height:14px;width:14px;flex-shrink:0}
.attachment-button:hover{background:#f5edf1}
.gift-editor .file-input{display:none}
.gift-editor .shop-fields{margin:0;padding:0;border-top:1px solid var(--line)}
.shop-fields summary{display:flex;align-items:center;gap:9px;padding-top:16px;cursor:pointer;list-style:none;font-size:12px}
.shop-fields summary::-webkit-details-marker{display:none}
.shop-fields summary>svg{height:19px;width:19px;flex-shrink:0;color:#9b7688}
.shop-fields summary>span:not(.details-chevron){flex:1;min-width:0}
.shop-fields summary small{display:block;color:var(--muted);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}
.details-chevron{color:#a8909d;transition:transform .15s}
.shop-fields[open] .details-chevron{transform:rotate(180deg)}
.shop-content{padding-top:4px}
.shop-content label{font-size:11px}
.shop-content input{font-size:13px;padding:10px}
.map-picker-button,.map-gps{display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #dfcfd8;border-radius:8px;background:#f5edf1;color:var(--plum);padding:11px 12px;font-size:12px;cursor:pointer}
.map-picker-button{width:100%;margin-top:16px;font-size:11px}
.map-picker-button svg,.map-gps svg{height:18px;width:18px;flex-shrink:0}
.saved-location{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;margin-top:10px}
.saved-location .map-link{font-size:10px}
.wishes-content .form-bottom{padding-top:20px;border-top:1px solid var(--line)}
dialog::backdrop{background:#33232e99;backdrop-filter:blur(3px)}
.map-dialog,.install-dialog{border:1px solid var(--line);border-radius:20px;background:#fffdfb;color:var(--ink);padding:24px;box-shadow:0 20px 80px #24161f44}
.map-dialog{width:min(640px,calc(100% - 24px));max-height:calc(100dvh - 24px);overflow:auto}
.map-dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}
.map-dialog-heading h2{font-size:27px;margin:6px 0}
.map-dialog-heading .mini-label{font-size:9px}
.map-dialog-heading .icon-button{height:36px;width:36px;padding:8px}
.map-instructions{font-size:12px;margin:8px 0 15px}
.shop-map{height:clamp(240px,45dvh,400px);width:100%;border:1px solid #e3dedb;border-radius:12px;background:#eeeae5;z-index:0}
.map-feedback{font-size:11px;min-height:20px;margin:12px 0;color:var(--muted)}
.map-dialog-actions{display:flex;justify-content:space-between;gap:12px;align-items:stretch}
.map-dialog-actions .primary{justify-content:center}
.shop-map-pin{background:transparent;color:var(--plum);filter:drop-shadow(0 3px 3px #0004)}
.shop-map-pin svg{height:40px;width:34px;fill:#fff;stroke-width:2}
.shop-map-pin svg circle{fill:var(--plum)}
.leaflet-container{font-family:inherit}
.leaflet-container .leaflet-control-attribution{font-size:10px}
.install-dialog{width:min(410px,calc(100% - 32px));padding:28px}
.install-dialog h2{margin-top:0;font-size:27px}
.install-dialog p{font-size:14px;line-height:1.8}
.install-dialog .primary{width:100%;justify-content:center}
@media(max-width:1000px){.wishes-content{padding:24px}.gift-editor{padding:16px}.photo-actions{gap:5px}.attachment-button{padding:7px}}
@media(max-width:720px){
 header{padding:0 16px;height:80px}.brand span{font-size:23px}.brand svg{width:30px;height:30px}.brand{gap:8px}.brand small{font-size:6px;letter-spacing:1.2px}.header-right{gap:0}.appbar-actions{gap:6px}.icon-button{height:38px;width:38px;padding:9px}.connection-dot{display:none}
 .dashboard{margin:24px 16px 40px}.page-title h1{font-size:32px}.page-title p{font-size:12px}.wishes-content{padding:20px 16px}.wishes-content .section-head h2{font-size:25px}.wishes-content .section-head .mini-label{font-size:9px}.wishes-content .section-head .badge{font-size:9px}.wishes-content .gift-grid{margin:22px 0;gap:16px}.gift-editor{padding:20px}.gift-editor>input:not([type=hidden]):not([type=file]),.shop-content input{font-size:16px}.wish-heading{margin-bottom:15px}.wish-photo{gap:16px;margin:20px 0}.attachment-button{font-size:12px;padding:8px 11px}.wish-photo .photo-preview,.wish-photo .photo-preview img{height:80px;width:74px}.shop-fields summary{font-size:13px}.shop-fields summary small{font-size:11px}.map-picker-button{font-size:12px}.saved-location .map-link{font-size:12px}.map-dialog{padding:18px;border-radius:16px}.map-dialog-heading h2{font-size:24px}.map-dialog-actions{gap:8px}.map-dialog-actions button{font-size:11px;padding:12px}.map-instructions{font-size:11px}.map-feedback{font-size:11px}.map-gps{gap:5px}.wishes-content .form-bottom .primary{font-size:13px}
}
@media(prefers-reduced-motion:reduce){.details-chevron{transition:none}}
@media(min-width:1001px) and (max-width:1232px){.dashboard{margin-left:28px;margin-right:28px}footer{margin-left:28px;margin-right:28px}}
/* Shared wish board: identical presentation for every participant. */
.tabs{overflow-x:auto;justify-content:flex-start;gap:26px;scrollbar-width:thin}
.tabs button{flex:0 0 auto;white-space:nowrap}
.board-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:30px 0 24px}
.board-heading h2{margin:10px 0;font-size:30px}
.board-heading p{font-size:13px;margin:0;max-width:650px}
.board-people{display:grid;gap:20px}
.board-person{padding:24px;overflow:hidden}
.board-person-heading{display:flex;align-items:center;gap:12px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.board-person-heading h3{font:24px Georgia,serif;margin:0}
.board-person-heading .avatar{width:37px;height:37px;font-size:13px;flex-shrink:0}
.board-count{margin-left:auto;color:var(--muted);font-size:11px}
.board-gifts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:20px}
.board-gift{min-width:0;border:1px solid var(--line);border-radius:12px;background:#fcfaf8;overflow:hidden}
.board-photo{height:155px;background:#f1e9e9;display:grid;place-items:center}
.board-photo img{width:100%;height:155px;object-fit:contain}
.board-photo svg{width:44px;height:44px;stroke:#b28b9f;stroke-width:1.5}
.board-gift-info{padding:18px;overflow-wrap:anywhere}
.board-gift-info .mini-label{font-size:8px;letter-spacing:1.4px;color:var(--muted)}
.board-gift-info h4{font-size:16px;font-weight:600;line-height:1.4;margin:8px 0}
.board-gift-info>strong{font-size:13px;color:#95677f}
.board-gift-info .shop-name{font-size:12px;margin:18px 0 4px}
.board-gift-info .shop-address{font-size:11px}
.board-gift-info .map-link{font-size:11px}
.board-pending{font-size:12px;margin:20px 0 0}
@media(max-width:720px){.tabs{gap:22px}.tabs button{font-size:12px}.board-heading{align-items:flex-start;gap:12px;margin-top:24px}.board-heading h2{font-size:27px}.board-heading p{font-size:12px}.board-heading .badge{font-size:9px;padding:6px 9px}.board-person{padding:18px}.board-person-heading h3{font-size:23px}.board-gifts{grid-template-columns:1fr;gap:12px;margin-top:16px}.board-gift{display:grid;grid-template-columns:84px minmax(0,1fr)}.board-photo{height:100%;min-height:130px}.board-photo img{height:100%;max-height:230px}.board-photo svg{width:31px;height:31px}.board-gift-info{padding:14px}.board-gift-info h4{font-size:15px}.board-gift-info .shop-name{margin-top:12px}.board-gift-info .map-link{font-size:12px}.board-count{font-size:10px}}
