:root {
  --paper:#fff7ea;
  --cream:#fffdf7;
  --ink:#341039;
  --muted:#735d75;
  --line:#e1d5ca;
  --coral:#ff5f66;
  --yellow:#ffbf2f;
  --teal:#087f83;
  --green:#2d7051;
}
*{box-sizing:border-box}
html{background:var(--paper)}
body{margin:0;min-height:100svh;color:var(--ink);background:radial-gradient(circle at 50% -12%,#fff,transparent 34%),var(--paper);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.desk-header{position:sticky;z-index:20;top:0;min-height:74px;padding:max(.7rem,env(safe-area-inset-top)) 1rem .7rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem;color:var(--cream);background:rgba(52,16,57,.97);border-bottom:1px solid rgba(255,255,255,.14);backdrop-filter:blur(14px)}
.desk-brand{display:flex;align-items:center;gap:.7rem;color:inherit;text-decoration:none}
.desk-brand svg{width:44px;height:44px;filter:drop-shadow(0 5px 10px rgba(0,0,0,.15))}
.desk-brand span{display:flex;flex-direction:column;line-height:1}
.desk-brand small{color:#eaddec;font-size:.68rem;font-weight:850;letter-spacing:.16em;text-transform:uppercase}
.desk-brand strong{margin-top:.2rem;font-size:1.08rem}
.private-chip{padding:.42rem .65rem;color:#dce8e6;border:1px solid rgba(255,255,255,.25);border-radius:999px;font-size:.68rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.desk-navigation{flex:0 0 100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem}
.desk-section-picker{min-width:0}
.desk-section-picker select{width:100%;min-height:44px;padding:.6rem .7rem;color:var(--ink);background:var(--cream);border:1px solid var(--line);border-radius:9px;font-size:1rem}
.desk-navigation .quiet-button{min-height:44px;color:var(--cream);background:transparent;border-color:#a390a5;white-space:nowrap}
.desk-navigation :focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
main{width:min(100%,760px);min-height:calc(100svh - 74px);margin:0 auto;padding:0 1rem max(3rem,env(safe-area-inset-bottom))}
.access-panel{min-height:calc(100svh - 74px);display:flex;flex-direction:column;justify-content:center;padding:2rem 0}
.eyebrow{margin:0 0 .65rem;color:var(--teal);font-size:.72rem;font-weight:900;letter-spacing:.17em;text-transform:uppercase}
.access-panel h1,.desk-intro h1{margin:0;font-family:Georgia,serif;font-size:clamp(3rem,13vw,5.3rem);font-weight:500;line-height:.94;letter-spacing:-.055em}
h1 em{color:var(--coral);font-style:italic}
.access-panel>p:not(.eyebrow,.message),.desk-intro>div>p:last-child{max-width:560px;margin:1.15rem 0;color:var(--muted);font-family:Georgia,serif;font-size:1.08rem;line-height:1.5}
form{display:grid;gap:.7rem}
label{font-size:.8rem;font-weight:850}
input,textarea{width:100%;padding:.9rem;color:var(--ink);background:var(--cream);border:1px solid #bdb5a8;border-radius:10px;outline:none}
input:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(8,127,131,.14)}
form>button,.copy-link-button{min-height:52px;padding:.85rem 1rem;color:#fff;background:var(--ink);border:2px solid var(--ink);border-radius:10px;box-shadow:4px 4px 0 var(--yellow);font-weight:850}
.message{min-height:1.4em;margin:.8rem 0;color:var(--coral);font-size:.8rem}
.desk{padding:2rem 0}
.desk-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.desk-intro h1{font-size:clamp(3rem,12vw,4.8rem)}
.quiet-button{padding:.55rem .7rem;color:var(--ink);background:rgba(255,255,255,.45);border:1px solid var(--line);border-radius:9px;font-size:.76rem;font-weight:800}
.summary-grid{margin:1rem 0 1.25rem;display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem}
.summary-grid article{padding:1rem .7rem;background:var(--cream);border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 25px rgba(52,16,57,.05)}
.summary-grid span{display:block;font-family:Georgia,serif;font-size:2rem}
.summary-grid small{color:var(--muted);font-size:.68rem;font-weight:800}
.launch-readiness{margin:1rem 0 1.4rem;padding:1rem;background:var(--cream);border:1px solid var(--line);border-radius:15px;box-shadow:0 8px 28px rgba(52,16,57,.05)}
.launch-readiness .eyebrow{margin:0}
.launch-readiness h2{margin:0;font-family:Georgia,serif;font-size:1.45rem;font-weight:500}
.readiness-grid{margin-top:.8rem;display:grid;grid-template-columns:1fr 1fr;gap:.45rem}
.readiness-grid span{min-height:38px;padding:.55rem .65rem;display:flex;align-items:center;color:var(--muted);background:#f3ecdf;border-radius:10px;font-size:.68rem;font-weight:800}
.readiness-grid span::before{content:"";flex:0 0 auto;width:8px;height:8px;margin-right:.45rem;background:#c98f4d;border-radius:50%}
.readiness-grid span.is-ready{color:var(--green);background:#e0eee5}
.readiness-grid span.is-ready::before{background:var(--green)}
.readiness-grid span.is-blocked{color:#9a3f3f;background:#f4e0d4}
.readiness-grid span.is-blocked::before{background:#c34d4d}
.account-preview-launch{margin:1rem 0 1.8rem;padding:1rem;color:var(--cream);background:var(--ink);border:2px solid var(--ink);border-radius:16px;box-shadow:6px 7px 0 var(--coral)}
.account-preview-content{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.9rem 1rem}
.account-preview-launch .eyebrow{margin-bottom:.25rem;color:#79d2d2}
.account-preview-launch h2{margin:0;font-family:Georgia,serif;font-size:1.55rem;font-weight:500}
.account-preview-launch p:not(.eyebrow){margin:.35rem 0 0;color:#eaddec;font-family:Georgia,serif;font-size:.9rem;line-height:1.4}
.account-preview-launch-button{min-height:48px;padding:.7rem .9rem;display:flex;align-items:center;justify-content:center;gap:.5rem;color:var(--ink);background:var(--yellow);border:2px solid var(--cream);border-radius:999px;font-size:.75rem;font-weight:900;text-align:center;text-decoration:none;white-space:nowrap}
.account-preview-style-links{grid-column:1 / -1;padding-top:.8rem;display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;border-top:1px solid rgba(255,255,255,.17)}
.account-preview-style-links span{margin-right:.15rem;color:#cdbdce;font-size:.75rem;font-weight:800}
.account-preview-style-links a{padding:.4rem .55rem;color:var(--cream);border:1px solid rgba(255,255,255,.28);border-radius:999px;font-size:.75rem;font-weight:850;text-decoration:none}
.new-key-panel{margin:1.2rem 0 1.8rem;background:var(--cream);border:2px solid var(--ink);border-radius:14px;box-shadow:5px 5px 0 var(--teal)}
.new-key-panel form small{color:var(--muted);font-size:.72rem}
.token-field{display:flex;align-items:center;background:var(--cream);border:1px solid #bdb5a8;border-radius:10px}
.token-field span{padding-left:.8rem;color:var(--teal);font-family:monospace;font-weight:850}
.token-field input{border:0;box-shadow:none}
.list-heading{display:flex;align-items:center;justify-content:space-between}
.list-heading h2{margin:.5rem 0;font-family:Georgia,serif;font-size:1.8rem;font-weight:500}
.key-list{display:grid;gap:.85rem}
.key-card{padding:1rem;background:var(--cream);border:1px solid var(--line);border-radius:15px;box-shadow:0 8px 28px rgba(52,16,57,.06)}
.key-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.key-code{font-family:Georgia,serif;font-size:1.5rem}
.key-token{display:block;margin-top:.2rem;color:var(--muted);font-family:monospace;font-size:.7rem}
.status{padding:.4rem .62rem;border-radius:999px;font-size:.68rem;font-weight:850;text-transform:capitalize}
.status-unclaimed{color:#8d4a34;background:#f4e0d4}
.status-claimed{color:#316764;background:#dcebea}
.status-sealed{color:#2d7051;background:#e0eee5}
.status-paid{color:#8d4a34;background:#f4e0d4}
.status-preparing{color:#316764;background:#dcebea}
.status-fulfilled{color:#2d7051;background:#e0eee5}
.key-pet{margin:.85rem 0 .2rem;color:var(--muted);font-family:Georgia,serif;font-size:1rem}
.key-date{margin:0;color:var(--muted);font-size:.7rem}
.key-actions{margin-top:1rem;display:grid;grid-template-columns:1fr 1fr;gap:.55rem}
.key-actions button,.key-actions a{min-height:44px;padding:.65rem;display:flex;align-items:center;justify-content:center;color:var(--ink);background:#fffaf1;border:1px solid var(--line);border-radius:9px;font-size:.73rem;font-weight:800;text-align:center;text-decoration:none}
.key-actions .primary-action{color:#fff;background:var(--ink);border-color:var(--ink)}
.key-actions .danger-action{color:#9a3f3f}
.demo-key-card h3{margin:0;font-family:Georgia,serif;font-size:1.65rem;font-weight:500}
.demo-key-card h3 span{display:block;margin-top:.3rem;color:var(--teal);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:.875rem;font-weight:850}
.demo-key-card p{color:var(--muted);font-size:1rem;line-height:1.5}
.demo-key-card label{display:block;margin-bottom:.4rem;font-size:.875rem}
.demo-key-card input{font-size:1rem}
.demo-key-actions{display:flex;flex-wrap:wrap;align-items:stretch;gap:.75rem;margin-top:.8rem}
.demo-key-actions>*{flex:1 1 180px;min-height:48px;padding:.8rem;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:850;text-align:center}
.demo-key-actions a{color:var(--ink);background:var(--cream);border:1px solid var(--line);border-radius:10px;text-decoration:none}
.demo-key-card p[role="status"]:empty{display:none}
.demo-key-card .demo-key-tracking{margin:1.25rem 0 0;font-size:.875rem}
.demo-key-tracking button{min-height:44px;padding:.4rem 0;color:var(--teal);background:transparent;border:0;text-decoration:underline;font-weight:800}
.demo-key-tracking button:disabled{color:var(--muted);cursor:default;text-decoration:none}
.demo-key-card :focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.order-heading{margin-top:2.5rem;align-items:flex-end}
.order-heading .eyebrow{margin-bottom:.25rem}
.order-heading h2{margin:0}
.order-count{padding:.42rem .65rem;color:var(--teal);background:#dcebea;border-radius:999px;font-size:.68rem;font-weight:850}
.order-list{margin-top:.8rem;display:grid;gap:.85rem}
.empty-orders{padding:1.1rem;display:flex;flex-direction:column;gap:.25rem;color:var(--muted);background:rgba(255,255,255,.48);border:1px dashed #bdb5a8;border-radius:14px}
.empty-orders strong{color:var(--ink)}
.empty-orders span{font-family:Georgia,serif;font-size:.9rem}
.order-card{padding:1rem;background:var(--cream);border:1px solid var(--line);border-radius:15px;box-shadow:0 8px 28px rgba(52,16,57,.06)}
.order-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.order-card-head>div{display:flex;flex-direction:column;gap:.22rem}
.order-card-head strong{font-family:Georgia,serif;font-size:1.35rem;font-weight:500}
.order-number{color:var(--teal);font-size:.65rem;font-weight:900;letter-spacing:.14em}
.order-item-list{margin:.85rem 0;display:grid;gap:.45rem}
.order-specs{margin:.85rem 0;padding:.65rem .75rem;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.55rem;background:#f3ecdf;border-radius:10px;font-size:.77rem}
.order-item-list .order-specs{margin:0}
.order-specs>span:nth-child(2){display:grid;gap:.08rem}
.order-specs small{color:var(--muted);font-size:.66rem}
.color-dot{width:18px;height:18px;border:2px solid var(--ink);border-radius:50%}
.color-coral{background:var(--coral)}
.color-cocoa{background:#8a5138}
.order-card address{color:var(--muted);font-size:.82rem;font-style:normal;line-height:1.45}
.order-card address strong{color:var(--ink)}
.order-email{display:inline-block;margin-top:.5rem;color:var(--teal);font-size:.75rem;font-weight:750;overflow-wrap:anywhere}
.order-actions{margin-top:1rem;display:grid;gap:.55rem}
.order-actions a,.order-actions button,.fulfilled-note{min-height:44px;padding:.65rem;display:flex;align-items:center;justify-content:center;border-radius:9px;font-size:.72rem;font-weight:800;text-align:center;text-decoration:none}
.order-actions a{color:var(--ink);background:#fffaf1;border:1px solid var(--line)}
.order-actions button{color:#fff;background:var(--green);border:1px solid var(--green)}
.order-actions button:disabled{opacity:.55}
.order-page-links{display:grid;gap:.4rem}
.fulfilled-note{color:var(--green);background:#e0eee5}
.fulfillment-note{margin:.7rem 0 0;color:var(--muted);font-size:.7rem;line-height:1.4}
.shipment-form{padding:.75rem;display:grid;grid-template-columns:110px 1fr;gap:.5rem;background:#f3ecdf;border-radius:11px}
.shipment-form label{display:grid;gap:.3rem;color:var(--muted);font-size:.65rem;font-weight:800}
.shipment-form input,.shipment-form select{width:100%;min-height:42px;padding:.55rem .6rem;color:var(--ink);background:var(--cream);border:1px solid #bdb5a8;border-radius:8px}
.shipment-form button{grid-column:1 / -1;min-height:44px;color:#fff;background:var(--green);border:1px solid var(--green);border-radius:9px;font-size:.72rem;font-weight:850}
.shipment-summary{padding:.75rem;color:var(--muted);background:#e0eee5;border-radius:11px;font-size:.72rem;line-height:1.45}
.shipment-summary strong{color:var(--ink)}
.shipment-summary a{color:var(--teal);font-weight:800}
.shipment-email-ok{display:block;margin-top:.35rem;color:var(--green);font-weight:800}
.shipment-email-warning{display:block;margin-top:.35rem;color:#9a3f3f;font-weight:800}
.retry-email-button{width:100%;min-height:40px;margin-top:.5rem;color:#fff;background:var(--ink);border:0;border-radius:9px;font-size:.7rem;font-weight:800}
dialog{width:min(calc(100% - 2rem),520px);padding:0;color:var(--ink);background:var(--paper);border:2px solid var(--ink);border-radius:18px;box-shadow:8px 9px 0 var(--teal)}
dialog::backdrop{background:rgba(23,44,56,.62);backdrop-filter:blur(4px)}
dialog form{position:relative;padding:1.35rem}
dialog h2{margin:0;font-family:Georgia,serif;font-size:2rem;font-weight:500}
dialog p:not(.eyebrow){margin:.5rem 0;color:var(--muted);line-height:1.4}
.dialog-close{position:absolute;top:.65rem;right:.7rem;width:36px;height:36px;color:var(--ink);background:transparent;border:0;font-size:1.6rem}
dialog textarea{font-family:monospace;font-size:.72rem;resize:none}
@media(min-width:620px){
  main{padding-inline:1.5rem}
  .key-list{grid-template-columns:1fr 1fr}
  .order-list{grid-template-columns:1fr 1fr}
}
@media(max-width:390px){
  .summary-grid{gap:.4rem}
  .summary-grid article{padding:.8rem .5rem}
  .desk-intro{display:block}
  .desk-intro>.quiet-button{margin-top:.3rem}
  .readiness-grid{grid-template-columns:1fr}
  .account-preview-content{grid-template-columns:1fr}
  .account-preview-launch-button{width:100%}
  .account-preview-style-links{grid-column:1}
  .shipment-form{grid-template-columns:1fr}
}
/* Private activation details are deliberately separate from the public NFC link. */
#activationCodeDialog label { display: block; margin: 1.2rem 0 .5rem; font-weight: 750; }
#deskActivationCode { box-sizing: border-box; width: 100%; min-height: 48px; padding: .7rem; color: #341039; background: #fff7ea; border: 2px solid #087f83; border-radius: 10px; font: 1rem ui-monospace, monospace; }
.key-activation-note { font-size: .85rem; color: #087f83; }

.stockists-desk{margin:36px 0;padding:24px;background:var(--cream);border:2px solid var(--ink);border-radius:20px}.stockists-desk h2{font:500 2rem Georgia,serif}.stockists-desk p{font-size:1rem;line-height:1.5}.stockists-desk summary{cursor:pointer;font-weight:800;padding:16px 0}.stockists-desk form{padding:16px 0}.stockists-desk label{font-size:.875rem;line-height:1.5}.stockist-check{display:flex;align-items:center;gap:12px}.stockist-check input{width:20px;height:20px;flex-shrink:0}#stockistsDeskList article{padding:16px 0;border-bottom:1px solid var(--line);display:flex;gap:12px;flex-wrap:wrap;align-items:center}#stockistsDeskList article>div{flex:1;min-width:160px}#stockistsDeskList article p{margin:8px 0}#stockistsDeskList button{min-height:44px;font-size:.875rem}#stockistsDeskMessage{color:var(--teal)}

.preparation-panel { margin: 28px 0; padding: clamp(18px, 3vw, 32px); border: 1px solid #d9cddd; border-radius: 22px; background: #fff; }
.preparation-panel h2 { margin: 0 0 12px; font-size: 28px; }
.preparation-panel p, #preparationDialog p { line-height: 1.6; }
.preparation-panel label, #preparationDialog label { display: block; font-size: 14px; font-weight: 700; }
.preparation-panel input, .preparation-panel select, #preparationDialog input:not([type=checkbox]), #preparationDialog textarea { box-sizing: border-box; width: 100%; min-width: 0; margin: 8px 0 16px; padding: 12px; border: 1px solid #bdaec2; border-radius: 10px; font: inherit; font-size: 16px; }
.preparation-batch-form { display: grid; grid-template-columns: minmax(0, 1fr) 140px auto; gap: 16px; align-items: center; }
.preparation-panel button, #preparationDialog button:not(.dialog-close) { padding: 12px 18px; border: 0; border-radius: 12px; background: #341039; color: white; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; }
.preparation-panel button:disabled, #preparationDialog button:disabled { opacity: .5; cursor: wait; }
.preparation-list { max-height: 420px; overflow: auto; }
.preparation-row { display: flex; gap: 18px; align-items: center; padding: 16px 0; border-top: 1px solid #e8e0ea; font-size: 14px; }
.preparation-row > div { flex: 1; min-width: 0; }
.preparation-row strong, .preparation-identity { overflow-wrap: anywhere; }
.preparation-row small { display: block; margin-top: 5px; color: #645269; font-size: 13px; }
#preparationDialog { box-sizing: border-box; width: min(600px, calc(100vw - 28px)); max-height: 90dvh; overflow: auto; padding: 30px; }
#preparationDialog .preparation-check { display: flex; align-items: flex-start; gap: 12px; margin: 20px 0; font-size: 16px; line-height: 1.5; }
#preparationDialog input[type=checkbox] { flex: 0 0 20px; width: 20px; height: 20px; margin-top: 3px; }
#preparationStepMessage, #preparationMessage { overflow-wrap: anywhere; }
@media (max-width: 640px) { .preparation-batch-form { grid-template-columns: 1fr; gap: 0; } .preparation-row { flex-wrap: wrap; gap: 10px; } .preparation-row > div { flex-basis: 100%; } #preparationDialog { padding: 24px 18px; } }
.key-link-form { display: grid; gap: 1rem; margin-top: 1.4rem; }
.key-link-form label, .order-key-assignment label { display: grid; gap: .5rem; font-size: 1rem; }
.key-link-form select, .order-key-assignment select { width: 100%; min-width: 0; font: inherit; padding: .85rem; background: #fff; border: 1px solid #34103940; border-radius: .6rem; }
.key-link-form p, .key-link-existing p { overflow-wrap: anywhere; line-height: 1.6; }
.key-link-form button { justify-self: start; }
.key-link-existing { border-left: 3px solid #07949a; padding-left: 1rem; }
.key-link-existing:empty { display: none; }
.key-link-form .hidden { display: none; }
.order-key-assignment { padding: 1rem; background: #34103908; display: grid; gap: .75rem; border-radius: .75rem; margin-bottom: 1rem; }
.order-key-assignment button { justify-self: start; }
.order-specs small { overflow-wrap: anywhere; font-size: .875rem; }

/* Each desk tool keeps its contents mounted when folded away. */
.desk-section{margin:1rem 0;padding:0;border:1px solid var(--line);border-radius:16px;background:var(--cream);scroll-margin-top:calc(var(--desk-header-height,140px) + 1rem)}
.desk-section>summary{min-height:64px;padding:1.1rem;display:flex;align-items:center;gap:1rem;list-style:none;cursor:pointer;border-radius:inherit}
.desk-section>summary::-webkit-details-marker{display:none}
.desk-section>summary::after{content:"";width:.65rem;height:.65rem;flex:0 0 auto;margin-right:.25rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg)}
.desk-section[open]>summary::after{transform:rotate(225deg)}
.desk-section>summary:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.desk-section>summary h2{flex:1;min-width:0;margin:0;font:800 clamp(1.15rem,4.2vw,1.55rem)/1.3 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.desk-section>summary .eyebrow{display:block;margin:0 0 .35rem;font-size:.65rem;line-height:1.5}
.desk-section-content{padding:0 1.1rem 1.1rem}
.desk-section-content>p:first-child{margin-top:0;line-height:1.6}
.desk-section.account-preview-launch{color:var(--cream);background:var(--ink);border-color:var(--ink)}
.desk-section.account-preview-launch>summary:focus-visible{outline-color:var(--yellow)}
.desk-section .readiness-grid,.desk-section .order-list{margin-top:0}
.desk-section .order-count{display:table;margin-top:.5rem;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.desk-list-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem}
.desk-list-tools p{flex:1 1 230px;margin:0;font-size:.875rem;line-height:1.5}
.desk-list-tools .quiet-button{min-height:44px}
/* Shelter Friends uses the same private desk surfaces and section navigation. */
.shelter-toolbar,.shelter-card-actions,.shelter-editor-actions,.shelter-photo-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.shelter-toolbar button,.shelter-card-actions button,.shelter-editor-actions button,#copyShelterInvite{min-height:44px;padding:11px 15px;border:1px solid var(--ink);border-radius:10px;font-size:15px;font-weight:750;color:var(--cream);background:var(--ink)}
.shelter-toolbar .quiet-button,.shelter-editor-actions .quiet-button{color:var(--ink);background:var(--cream);border-color:var(--line)}
.shelter-card-actions a{min-height:44px;display:inline-flex;align-items:center}
.shelter-toolbar{margin:20px 0}.shelter-toolbar a,.shelter-card-actions a,.shelter-editor a{color:#245953;text-underline-offset:4px;font-weight:650}
.shelter-friends-list{display:grid;gap:14px;margin:20px 0}.shelter-friend-card{display:flex;justify-content:space-between;gap:20px;padding:22px;border:1px solid #dcd6df;border-radius:18px;background:#fff}
.shelter-friend-card h3{margin:9px 0 6px;font-size:24px}.shelter-friend-card p{margin:0 0 8px}.shelter-friend-card small{font-size:14px;line-height:1.5;color:#665a6a}.shelter-friend-card .shelter-needs-check{color:#874511}
.shelter-status{display:inline-block;padding:5px 10px;border-radius:20px;background:#efeaf3;color:#4d3856;font-size:14px;font-weight:700}.shelter-status-available{background:#d7efe5;color:#205c46}.shelter-status-adopted{background:#fff0be;color:#654c08}.shelter-status-hidden{background:#ebe9eb;color:#59505c}
.shelter-empty{padding:22px;background:#f7f4f8;border-radius:16px}.shelter-empty h3{font-size:22px;margin:0 0 10px}
.shelter-editor{margin:28px 0;padding:24px;border:2px solid #347b70;border-radius:20px;background:#fbfaf8;scroll-margin-top:calc(var(--desk-header-height,110px) + 20px)}
.shelter-editor-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.shelter-editor-heading h3{font-size:27px;margin:0}
.shelter-editor fieldset{margin:25px 0;padding:20px;border:1px solid #dbd5df;border-radius:14px;min-width:0}.shelter-editor legend{font-size:18px;font-weight:750;padding:0 8px}.shelter-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.shelter-editor label,.shelter-directory label{display:grid;gap:8px;font-size:15px;font-weight:650;margin:12px 0}.shelter-editor input,.shelter-editor select,.shelter-editor textarea,.shelter-directory input,.shelter-directory select{width:100%;max-width:100%;padding:12px;border:1px solid #bcb3c3;border-radius:9px;background:white;color:#341039;font:inherit;font-size:16px;box-sizing:border-box}.shelter-editor textarea{resize:vertical}
.shelter-editor p,.shelter-directory p{font-size:15px;line-height:1.6;color:#5b4c61;overflow-wrap:anywhere}.shelter-editor .shelter-check{display:flex;align-items:flex-start;gap:10px;font-weight:500;line-height:1.5}.shelter-check input[type=checkbox]{width:20px;height:20px;flex:0 0 20px;margin-top:2px;accent-color:#347b70}
.shelter-photo-list{display:grid;gap:14px;margin:20px 0}.shelter-photo{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:15px;background:white;border:1px solid #dcd6df;border-radius:12px}.shelter-photo img{width:120px;height:140px;object-fit:contain;background:#f0ecef;border-radius:9px}.shelter-photo label{margin:0 0 10px}.shelter-photo-actions button{font-size:14px;padding:9px 12px;min-height:40px}
.shelter-handoff,.shelter-key-panel{border-top:1px solid #d4cbd8;margin-top:26px;padding-top:22px}.shelter-handoff h4,.shelter-key-panel h4{font-size:22px;margin:0 0 12px}.shelter-handoff form,.shelter-key-panel form{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.shelter-handoff form label{flex:1 1 240px}.shelter-key-panel form label{flex:1 1 180px}.shelter-handoff form button,.shelter-key-panel form button{margin:12px 0}.shelter-key-panel #shelterConnectedKeys{white-space:pre-line}
.shelter-directory{border:1px solid #ddd4e0;border-radius:16px;padding:18px;margin:24px 0}.shelter-directory summary{font-size:19px;font-weight:700;cursor:pointer}.shelter-directory form{max-width:660px}
.shelter-editor button:disabled{opacity:.55;cursor:wait}.shelter-editor :focus-visible,.shelter-directory :focus-visible{outline:3px solid #2d8072;outline-offset:3px}
@media(max-width:680px){.shelter-editor{padding:15px}.shelter-editor fieldset{padding:14px}.shelter-field-grid{grid-template-columns:1fr}.shelter-friend-card,.shelter-editor-heading{flex-direction:column;align-items:flex-start}.shelter-photo{grid-template-columns:80px 1fr;padding:10px;gap:12px}.shelter-photo img{width:80px;height:110px}.shelter-editor-actions button{flex:1 1 170px}.shelter-handoff form button,.shelter-key-panel form button{width:100%}}
@media(max-width:440px){.shelter-photo{grid-template-columns:minmax(0,1fr)}.shelter-photo img{width:100%;height:170px}.shelter-editor fieldset{padding:10px}.shelter-photo-actions{gap:6px}.shelter-editor input[type=file]{padding:8px;font-size:14px}}

/* Around Town participant tools share the shelter editor's controls. */
.town-desk-list { display: grid; gap: 1rem; margin: 1.25rem 0; }
.town-desk-list > article { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem; border: 1px solid var(--line); border-radius: 14px; overflow-wrap: anywhere; }
.town-desk-list p { margin: .4rem 0; }
.town-desk-list small { font-size: .875rem; }
.town-desk-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
#townSupporterForm, #shelterForm { display: grid; gap: 1.15rem; }
#townSupporterForm label, #shelterForm label { min-width: 0; }
#townSupporterForm textarea, #shelterForm textarea { width: 100%; min-width: 0; padding: .8rem; font: inherit; border: 1px solid var(--line); border-radius: 10px; resize: vertical; }
#townSupporterForm fieldset { min-width: 0; padding: 1rem; border: 1px solid var(--line); border-radius: 12px; }
#townSupporterForm legend { font-weight: 800; }
#townSupporterForm p, #shelterForm p { line-height: 1.6; font-size: 1rem; }
#townSupporterForm button, #shelterForm button { justify-self: start; }
@media(max-width: 600px) { .town-desk-list > article { align-items: flex-start; flex-direction: column; } }
