:root{
  --text:#3f382d;
  --muted:#756c5c;
  --line:#dfd6c6;
  --panel:#fffdf8;
  --gold:#8b6f32;
  --success:#43765c;
  --shadow:0 18px 50px rgba(41,35,25,.20);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Arial,Helvetica,sans-serif;color:var(--text);background:transparent}
body{padding-bottom:calc(74px + env(safe-area-inset-bottom,0px))}
.footer{
  position:fixed;
  left:0;
  right:0;
  bottom:calc(14px + env(safe-area-inset-bottom,0px));
  z-index:50;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:34px;
  padding:0;
  margin:0 auto;
  pointer-events:none;
}
.footer-btn,.footer-call{
  position:relative;
  width:48px;
  height:48px;
  border:0;
  border-radius:0;
  background:transparent;
  display:grid;
  place-items:center;
  padding:0;
  margin:0;
  text-decoration:none;
  cursor:pointer;
  box-shadow:none;
  appearance:none;
  -webkit-appearance:none;
  font:inherit;
  color:var(--text);
  pointer-events:auto;
  -webkit-tap-highlight-color:transparent;
}
.footer-btn img,.footer-call img{width:34px;height:34px;object-fit:contain;display:block}
.footer-btn:focus-visible,.footer-call:focus-visible{outline:2px solid rgba(139,111,50,.45);outline-offset:6px;border-radius:12px}
.footer-label{display:none}
.footer-alert{position:absolute;right:0;top:0;display:none;align-items:center;justify-content:center;min-width:24px;height:24px;z-index:4;transform:translate(35%,-30%)}
.footer-alert.is-visible{display:flex}.footer-alert.is-urgent::before{content:"";position:absolute;inset:-5px;border-radius:999px;background:rgba(211,81,67,.22);animation:footerPulse 1.35s ease-out infinite}
.footer-alert img{position:absolute;inset:0;width:24px;height:24px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.25));animation:footerBlink 1s steps(2,end) infinite}
.footer-alert-count{position:relative;z-index:2;min-width:18px;height:18px;display:none;align-items:center;justify-content:center;border-radius:999px;background:#fff;color:#b83227;font-size:10px;font-weight:900;line-height:1;padding:0 5px;box-shadow:0 2px 7px rgba(0,0,0,.28);border:1px solid rgba(184,50,39,.25)}
.footer-alert.has-count .footer-alert-count{display:flex}
@keyframes footerBlink{0%,49%{opacity:1}50%,100%{opacity:.45}}@keyframes footerPulse{0%{transform:scale(.75);opacity:.95}100%{transform:scale(1.45);opacity:0}}
.modal-overlay{position:fixed;inset:0;z-index:80;display:none;align-items:center;justify-content:center;background:rgba(22,25,28,.55);padding:18px}.modal-overlay.active{display:flex}.message-modal{width:min(430px,100%);max-height:calc(100vh - 36px);overflow:auto;border-radius:22px;background:#fffdf8;border:1px solid var(--line);box-shadow:var(--shadow);padding:16px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.modal-head h3{margin:0;font-size:17px}.modal-close{width:36px;height:36px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:20px;cursor:pointer}.field-label{display:block;margin:12px 0 8px;font-size:13px;font-weight:800;color:#6b5e48}.message-textarea{width:100%;min-height:64px;resize:vertical;border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff;color:var(--text);font:inherit}.message-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0}.tool-btn,.tool-file-label,.secondary-btn,.primary-btn{min-height:44px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--text);font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;text-align:center;padding:8px 10px}.tool-btn.is-active{border-color:#8b7758;background:#faf8f2;color:#8b7758}.tool-file{display:none}.helper-note,.photo-empty-state,.qr-empty-state{font-size:12px;color:var(--muted);margin:8px 0 12px}.form-status{min-height:18px;font-size:12px;font-weight:800;margin:6px 0 10px;color:var(--muted)}.form-status.is-error{color:#b84840}.form-status.is-success{color:#43765c}.form-status.is-info{color:#6b5e48}.recipient-role-grid{display:grid;gap:10px;margin-bottom:12px}.recipient-main-toggle,.recipient-role-toggle{width:100%;min-height:44px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--text);font:inherit;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:0 12px}.recipient-main-toggle{background:#faf8f2}.recipient-main-toggle.is-open,.recipient-role-toggle.is-open,.recipient-role-toggle.is-selected{border-color:#d9ccb5;color:#8b7758;background:#faf8f2}.recipient-body,.role-user-box{display:none}.recipient-body.active,.role-user-box.active{display:grid;gap:8px}.recipient-summary{font-size:12px;color:var(--muted);padding:4px 2px}.user-list{display:grid;gap:6px}.user-item{display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:8px 10px;background:#fff;font-size:13px;font-weight:700}.photo-preview-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}.photo-item{position:relative;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;min-height:82px}.photo-item img{width:100%;height:82px;object-fit:cover;display:block}.photo-remove,.qr-remove{min-width:26px;height:26px;border:none;border-radius:999px;background:#f7e7e5;color:#c35f55;font-weight:900;cursor:pointer}.photo-remove{position:absolute;top:4px;right:4px}.qr-scanner{display:none;margin:10px 0 12px;padding:12px;border:1px dashed var(--line);border-radius:14px;background:#faf8f2}.qr-scanner.active{display:block}.qr-reader{width:100%;overflow:hidden;border-radius:14px;background:#fff;padding:10px;border:1px solid var(--line)}.qr-manual-label{display:block;margin-bottom:6px;font-size:12px;font-weight:800;color:#6b5e48}.qr-manual-row{display:grid;grid-template-columns:1fr auto;gap:8px}.qr-manual-input{min-height:40px;border:1px solid var(--line);border-radius:12px;padding:0 10px;background:#fff;color:var(--text);font:inherit}.qr-add-btn{min-height:40px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text);font-weight:800;cursor:pointer;padding:0 12px}.qr-result{margin-top:10px;font-size:13px;font-weight:800;color:#6b5e48;word-break:break-word}.qr-list{display:flex;flex-direction:column;gap:8px;margin:0 0 12px}.qr-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:#fff;font-size:13px;font-weight:700;color:var(--text)}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.primary-btn{background:#8b6f32;color:#fff;border-color:#8b6f32}.secondary-btn{background:#fff}
[hidden]{display:none!important}.recipients-summary{margin:0 0 10px;padding:8px 10px;border:1px solid rgba(201,176,124,.45);border-radius:12px;background:rgba(255,252,245,.95);color:#7b1d10;font-weight:700;font-size:13px;line-height:1.35}.qr-camera-panel{display:grid;gap:8px;margin-bottom:10px}.qr-camera-panel[hidden]{display:none!important}.qr-video{width:100%;max-height:260px;object-fit:cover;border-radius:12px;background:#1d1d1d;border:1px solid var(--line)}.qr-canvas{display:none}.qr-stop-btn{min-height:38px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text);font-weight:800;cursor:pointer}.call-launch{text-decoration:none}.call-launch.is-disabled,.call-launch[aria-disabled="true"]{opacity:.55;cursor:not-allowed}.call-modal .recipient-role-grid{margin-bottom:8px}.direct-contact-grid{margin-bottom:12px}.direct-contact-list{max-height:260px;overflow:auto;padding-right:2px}.direct-contact-item{align-items:flex-start}.contact-text{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;line-height:1.25}.contact-name{font-weight:800}.contact-role{color:var(--muted);font-size:12px;font-weight:600}
@media(max-width:520px){body{padding-bottom:calc(68px + env(safe-area-inset-bottom,0px))}.footer{bottom:calc(10px + env(safe-area-inset-bottom,0px));gap:30px}.footer-btn,.footer-call{width:46px;height:46px}.footer-btn img,.footer-call img{width:32px;height:32px}.message-tools{grid-template-columns:1fr}.photo-preview-list{grid-template-columns:repeat(2,1fr)}.direct-contact-list{max-height:220px}.contact-text{display:grid;gap:2px}.contact-role{font-size:11px}}
@media (prefers-reduced-motion: reduce){.footer-alert img,.footer-alert.is-urgent::before{animation:none}}
