.gift-top{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin:20px 0}.gift-actions{display:flex;gap:12px;flex-wrap:wrap}.gift-actions button{width:auto!important}.gift-photo{width:240px;flex:0 0 240px;aspect-ratio:4/3;border:1px solid #aab7aa;background:#f5f7f1}.gift-photo img{width:100%;height:100%;object-fit:contain}.gift-photo img:not([src]){visibility:hidden}.gift-table .gift-selected td{background:#e5d2fa!important}.gift-table .gift-in{color:#13823b!important;font-weight:600}.gift-table .gift-out{color:#d11b36!important;font-weight:600}.gift-modal{background:var(--portal-surface,#f3efdf);color:var(--portal-text,#183025);padding:24px;width:min(900px,92vw);max-height:90vh;overflow:auto;border:2px solid #00ce36}.gift-field{display:flex;flex-direction:column;gap:8px;margin:12px 0}.gift-preview{display:block;width:240px;aspect-ratio:4/3;object-fit:contain;margin:12px 0}.gift-preview:not([src]){display:none}.gift-orange{background:#ff9800!important;color:#161616!important;border-color:#df8400!important}.gift-error{color:#d11b36}.gift-crop{display:block;width:auto;max-width:100%;max-height:65vh;touch-action:none;cursor:move;margin:auto}.gift-overlay{z-index:15000}.gift-context{position:fixed;z-index:16000;background:#fff;border:1px solid #888;padding:6px;box-shadow:0 3px 12px #0004}.gift-modal table{white-space:nowrap}

/* Directory tab strip and compact gift header. Photo keeps the crop aspect ratio. */
.directory-header{margin-bottom:12px}
.directory-header>h1{margin-top:0}
.directory-tabs{display:flex;align-items:stretch;gap:3px;border-bottom:2px solid #748b78;margin:0 0 16px;overflow-x:auto}
.directory-tabs>.portal-action{flex:0 0 auto;width:auto!important;margin:0!important;padding:10px 16px!important;border:1px solid #8c9f8e!important;border-bottom:0!important;border-radius:9px 9px 0 0!important;background:#e0e7db!important;color:#304b35!important;box-shadow:none!important;white-space:nowrap}
.directory-tabs>.portal-action.is-active{background:#f7f9f2!important;color:#183c22!important;border-top:3px solid #00b830!important;padding-top:8px!important;font-weight:700;box-shadow:inset 0 -3px #00b830!important}
.directory-tabs>.portal-action:hover{background:#eef4e8!important}
.directory-tabs>.portal-action:focus-visible{outline:2px solid #00b830;outline-offset:-4px}
.directory-header.has-gifts{display:grid;grid-template-columns:minmax(0,1fr) 240px;grid-template-rows:auto auto auto;column-gap:24px;align-items:start}
.directory-header.has-gifts>h1{grid-column:1;grid-row:1;margin:0 0 16px}
.directory-header.has-gifts>.directory-tabs{grid-column:1;grid-row:2;margin:0 0 16px}
.directory-header.has-gifts>.gift-top{display:contents}
.directory-header.has-gifts .gift-actions{grid-column:1;grid-row:3;align-self:start}
.directory-header.has-gifts .gift-photo{grid-column:2;grid-row:1 / 4;align-self:start;margin:0;box-sizing:border-box}
@media(max-width:700px){.directory-header.has-gifts{grid-template-columns:minmax(0,1fr) 140px;column-gap:12px}.directory-header.has-gifts .gift-photo{width:140px}.directory-header.has-gifts>.directory-tabs{grid-column:1 / -1;grid-row:2;margin-top:12px}.directory-header.has-gifts .gift-photo{grid-row:1}.directory-header.has-gifts .gift-actions{grid-column:1 / -1}.directory-tabs>.portal-action{padding-left:10px!important;padding-right:10px!important}}

/* Each dialog owns a viewport layer; child dialogs cover the parent. */
.gift-overlay{position:fixed!important;inset:0!important;display:grid!important;place-items:center!important;box-sizing:border-box;width:100%;height:100%;padding:16px;background:rgba(0,0,0,.72);overflow:hidden;isolation:isolate}
.gift-overlay[inert]{pointer-events:none}
.gift-overlay>.gift-modal{box-sizing:border-box;display:flex;flex-direction:column;gap:12px;min-width:0;width:min(900px,100%);max-width:100%;max-height:calc(100dvh - 32px);margin:0;background:#031007!important;color:#b5d6b9!important;border:2px solid #00ce36;border-radius:10px;box-shadow:0 18px 70px #000b;padding:24px;overflow:hidden}
.gift-modal>h2{flex:0 0 auto;margin:0;color:#00e641!important;font-size:1.35rem}
.gift-modal-body{min-height:0;min-width:0;overflow:auto;overscroll-behavior:contain}
.gift-modal>.gift-actions{flex:0 0 auto;margin:0;gap:12px}
.gift-modal>.gift-error{flex:0 0 auto;margin:0;color:#ff7183}.gift-modal>.gift-error:empty{display:none}
.gift-modal .gift-field{color:#b5d6b9}.gift-modal .gift-field input,.gift-modal .gift-field select,.gift-modal .gift-field textarea{box-sizing:border-box;width:100%;min-width:0}
.gift-modal .stock-loading{min-height:0;padding:16px 8px;color:#b5d6b9}.gift-modal .stock-loading strong{color:#00e641}
.gift-modal .gift-crop{max-height:calc(100dvh - 220px);max-width:100%;object-fit:contain}
.gift-modal .price-scroll table{min-width:720px}
@media(max-width:600px){.gift-overlay{padding:8px}.gift-overlay>.gift-modal{padding:16px;max-height:calc(100dvh - 16px)}.gift-modal>.gift-actions{gap:8px}}

.price-scroll>.gift-table{table-layout:fixed;width:100%;min-width:800px}
.gift-table col:first-child{width:calc(8ch + 24px)}
.gift-table col:nth-child(3){width:calc(9ch + 24px)}
.gift-table col:nth-child(4){width:calc(13ch + 24px)}
.gift-table col:nth-child(5),.gift-table col:nth-child(6){width:calc(11ch + 24px)}
.gift-table th{white-space:normal;overflow-wrap:anywhere}
.gift-table td:first-child,.gift-table td:nth-child(n+3){white-space:nowrap;font-variant-numeric:tabular-nums}
.gift-table td:nth-child(2){white-space:normal;overflow-wrap:anywhere}
.gift-rotations{margin:0 0 12px;justify-content:center}

.gift-table tbody td:nth-child(2){text-align:left!important}
.gift-table tbody td:nth-child(2)::before{content:'🎁';display:inline-block;margin-right:8px}
.gift-totals{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px;padding-bottom:8px}
.gift-total{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;flex:1 1 250px;padding:12px 16px;border:1px solid #cbd6c8;border-radius:12px;background:#f4f7ef;color:#203d29;box-sizing:border-box;box-shadow:0 3px 10px #0000000c;font-family:Arial,sans-serif;line-height:1.35}
.gift-total-icon{font-size:1.2em}.gift-total>span:last-child:not(.gift-total-icon){white-space:nowrap}

.gift-table tbody tr.gift-empty td:nth-child(2)::before{content:'❌'}

.gift-table col:first-child{width:calc(14ch + 24px)}
.gift-table col:nth-child(5){width:calc(15ch + 24px)}
.gift-table th:first-child,.gift-table th:nth-child(5){white-space:nowrap;overflow-wrap:normal}
