/* Sala Operativa - Luxury minimal (no external fonts) */
:root,
.so-wrap[data-theme="dark"],
.so-wrap:not([data-theme]){
  --so-bg:#0b0c10;
  --so-card:#111218;
  --so-card2:#151827;
  --so-line:rgba(255,255,255,.08);
  --so-text:rgba(255,255,255,.92);
  --so-muted:rgba(255,255,255,.62);
  --so-gold:rgba(215,182,120,1);
  --so-ok:#2ecc71;
  --so-bad:#ff4d4d;
  --so-warn:#f5c542;
  --so-input-bg:rgba(0,0,0,.25);
  --so-chip-active-bg:rgba(215,182,120,.08);
  --so-top-grad:linear-gradient(180deg,rgba(17,18,24,1),rgba(11,12,16,1));
  --so-card-grad:linear-gradient(180deg,var(--so-card),var(--so-card2));
  --so-item-bg:rgba(255,255,255,.02);
  --so-btn-bg:rgba(255,255,255,.04);
  --so-btn-hover:rgba(255,255,255,.06);
}

.so-wrap[data-theme="light"]{
  --so-bg:#ffffff;
  --so-card:#ffffff;
  --so-card2:#fafafa;
  --so-line:rgba(0,0,0,.08);
  --so-text:#111111;
  --so-muted:rgba(0,0,0,.55);
  --so-gold:rgba(180,140,70,1);
  --so-ok:#1a9c4d;
  --so-bad:#d93636;
  --so-warn:#c49200;
  --so-input-bg:#ffffff;
  --so-chip-active-bg:rgba(180,140,70,.10);
  --so-top-grad:#ffffff;
  --so-card-grad:#ffffff;
  --so-item-bg:#ffffff;
  --so-btn-bg:#ffffff;
  --so-btn-hover:rgba(0,0,0,.04);
}

@media (prefers-color-scheme: light){
  .so-wrap[data-theme="auto"]{
    --so-bg:#ffffff;
    --so-card:#ffffff;
    --so-card2:#fafafa;
    --so-line:rgba(0,0,0,.08);
    --so-text:#111111;
    --so-muted:rgba(0,0,0,.55);
    --so-gold:rgba(180,140,70,1);
    --so-ok:#1a9c4d;
    --so-bad:#d93636;
    --so-warn:#c49200;
    --so-input-bg:#ffffff;
    --so-chip-active-bg:rgba(180,140,70,.10);
    --so-top-grad:#ffffff;
    --so-card-grad:#ffffff;
    --so-item-bg:#ffffff;
    --so-btn-bg:#ffffff;
    --so-btn-hover:rgba(0,0,0,.04);
  }
}

/* Page background (only where shortcode is present) */
body.so-stedif-active{background:var(--so-bg) !important;}
body.so-stedif-active .wp-site-blocks,
body.so-stedif-active .site,
body.so-stedif-active .site-content,
body.so-stedif-active .content-area,
body.so-stedif-active .entry-content,
body.so-stedif-active main,
body.so-stedif-active #page{background:var(--so-bg) !important;}

.so-wrap{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif; color:var(--so-text); background:var(--so-bg); padding:22px 16px; border-radius:22px; min-height:100vh;}
.so-wrap *{box-sizing:border-box}
.so-wrap a{color:var(--so-gold)}

.so-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 18px 12px;background:var(--so-top-grad);border:1px solid var(--so-line);border-radius:18px}
.so-brand{display:flex;flex-direction:column;gap:4px}
.so-title{font-family:Georgia,'Times New Roman',serif;font-size:20px;letter-spacing:.6px}
.so-sub{font-size:12px;color:var(--so-muted)}

.so-top-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.so-theme{display:flex;gap:4px}

.so-chip{border:1px solid var(--so-line);background:transparent;color:var(--so-text);padding:8px 10px;border-radius:999px;font-size:12px;cursor:pointer}
.so-chip.is-active{border-color:rgba(215,182,120,.65);background:var(--so-chip-active-bg)}

.so-btn{border:1px solid var(--so-line);background:var(--so-btn-bg);color:var(--so-text);padding:10px 12px;border-radius:14px;font-size:13px;cursor:pointer;transition:transform .08s ease, background .08s ease, border-color .08s ease}
.so-btn:hover{background:var(--so-btn-hover)}
.so-btn:active{transform:translateY(1px)}
.so-btn-primary{border-color:rgba(215,182,120,.55);background:rgba(215,182,120,.10)}
.so-btn-primary:hover{background:rgba(215,182,120,.14)}
.so-btn-ghost{background:transparent}
.so-btn-danger{border-color:rgba(255,77,77,.55);background:rgba(255,77,77,.08)}

.so-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 10px}
.so-hint{font-size:12px;color:var(--so-muted)}

.so-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:0 8px 10px}
.so-tab{border:1px solid var(--so-line);background:transparent;color:var(--so-muted);padding:9px 12px;border-radius:999px;font-size:12px;cursor:pointer}
.so-tab.is-active{color:var(--so-text);border-color:rgba(215,182,120,.55);background:var(--so-chip-active-bg)}

.so-panels{padding:0 8px 12px}
.so-panel{display:none}
.so-panel.is-active{display:block}

.so-card{background:var(--so-card-grad);border:1px solid var(--so-line);border-radius:18px;padding:14px}

.so-grid{display:grid;grid-template-columns:1fr;gap:12px}
@media (min-width:980px){
  .so-grid{grid-template-columns:1.2fr .8fr}
}

.so-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.so-row-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

.so-input{width:100%;border:1px solid var(--so-line);background:var(--so-input-bg);color:var(--so-text);padding:10px 12px;border-radius:14px;outline:none}
.so-input:focus{border-color:rgba(215,182,120,.55)}

.so-field{display:flex;flex-direction:column;gap:6px;margin:8px 0}
.so-label{font-size:12px;color:var(--so-muted)}

.so-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.so-item{border:1px solid var(--so-line);border-radius:16px;padding:10px 10px;background:var(--so-item-bg);display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.so-item.is-done{opacity:.7}
.so-item-main{display:flex;gap:10px;align-items:flex-start}
.so-check{margin-top:2px}
.so-item-title{font-size:13px;line-height:1.35}
.so-item-sub{font-size:12px;color:var(--so-muted);margin-top:4px}

.so-event-card{display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid var(--so-line);border-radius:16px;background:var(--so-item-bg)}
.so-event-card.is-wedding-day{border-color:rgba(215,182,120,.55)}
.so-event-name{font-size:15px;font-weight:600}
.so-event-date{font-size:13px;color:var(--so-muted)}
.so-event-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--so-muted);align-items:center}
.so-event-alert{font-size:12px;color:var(--so-warn)}
.so-event-alert.is-overdue{color:var(--so-bad)}
.so-event-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.so-event-grid{display:grid;grid-template-columns:1fr;gap:10px}
@media (min-width:720px){
  .so-event-grid{grid-template-columns:1fr 1fr}
}
.so-mb{margin-bottom:12px}
.so-badge-today{display:inline-block;font-size:11px;letter-spacing:.4px;color:var(--so-gold);border:1px solid rgba(215,182,120,.45);padding:3px 8px;border-radius:999px}
.so-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

.so-handle{cursor:grab;border:1px solid var(--so-line);border-radius:10px;padding:6px 8px;font-size:12px;color:var(--so-muted);user-select:none}

.so-progress{height:10px;border-radius:999px;background:rgba(255,255,255,.06);overflow:hidden;border:1px solid var(--so-line)}
.so-progress > div{height:100%;width:0%;background:var(--so-ok);transition:width .18s ease}
.so-progress.is-bad > div{background:var(--so-bad)}

.so-pill{font-size:11px;border:1px solid var(--so-line);padding:6px 10px;border-radius:999px;color:var(--so-muted)}
.so-pill.so-ok{border-color:rgba(46,204,113,.35);color:rgba(46,204,113,.9)}
.so-pill.so-bad{border-color:rgba(255,77,77,.35);color:rgba(255,77,77,.9)}

.so-divider{height:1px;background:var(--so-line);margin:12px 0}

.so-modal{position:fixed;inset:0;display:none;z-index:99999}
.so-modal[aria-hidden="false"]{display:block}
.so-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.65)}
.so-modal-card{position:relative;max-width:820px;margin:6vh auto 0;background:linear-gradient(180deg,var(--so-card),var(--so-card2));border:1px solid var(--so-line);border-radius:18px;box-shadow:0 24px 80px rgba(0,0,0,.55);overflow:hidden}
.so-modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--so-line)}
.so-modal-title{font-family:Georgia,'Times New Roman',serif;font-size:16px;letter-spacing:.4px}
.so-modal-body{padding:12px 14px;max-height:62vh;overflow:auto}
.so-modal-foot{padding:12px 14px;border-top:1px solid var(--so-line);display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}

.so-toast{position:fixed;right:14px;bottom:14px;background:rgba(17,18,24,.92);border:1px solid var(--so-line);padding:10px 12px;border-radius:14px;color:var(--so-text);font-size:12px;max-width:360px;box-shadow:0 20px 60px rgba(0,0,0,.45);z-index:100000}

.so-badge{font-size:12px;color:var(--so-muted)}

/* Small helpers */
.so-two{display:grid;grid-template-columns:1fr;gap:10px}
@media (min-width:820px){.so-two{grid-template-columns:1fr 1fr}}

.so-select{width:100%;max-width:280px;border:1px solid var(--so-line);background:rgba(0,0,0,.25);color:var(--so-text);padding:10px 12px;border-radius:14px;outline:none}
.so-select:focus{border-color:rgba(215,182,120,.55)}
.so-summary{display:flex;gap:10px;flex-wrap:wrap;align-items:stretch}
.so-summary-item{border:1px solid var(--so-line);border-radius:14px;padding:8px 12px;min-width:110px;background:rgba(255,255,255,.02)}
.so-summary-label{font-size:11px;color:var(--so-muted)}
.so-summary-value{font-size:14px;margin-top:4px}
.so-empty,.so-muted{font-size:12px;color:var(--so-muted)}
.so-table{display:flex;flex-direction:column;gap:0;border:1px solid var(--so-line);border-radius:14px;overflow:hidden}
.so-tr{display:grid;grid-template-columns:1.4fr .8fr auto;gap:10px;padding:10px 12px;border-bottom:1px solid var(--so-line);align-items:center}
.so-tr:last-child{border-bottom:0}
.so-th{font-size:11px;color:var(--so-muted);background:rgba(255,255,255,.03)}
.so-mini-list{display:flex;flex-direction:column;gap:8px}
.so-mini-item{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid var(--so-line);border-radius:12px;padding:8px 10px}
.so-mini-main{min-width:0}
.so-mini-title{font-size:13px}
.so-mini-sub{font-size:12px;color:var(--so-muted)}
.so-mini-actions{display:flex;gap:8px;flex-wrap:wrap}
.so-mt{margin-top:12px}
.so-pad{padding:12px}
.so-gap{gap:8px}
.so-between{justify-content:space-between}
.so-end{justify-content:flex-end}
.so-strong{font-weight:700}
.so-btn:focus-visible,.so-chip:focus-visible,.so-tab:focus-visible,.so-input:focus-visible,.so-select:focus-visible{
  outline:2px solid rgba(215,182,120,.7);
  outline-offset:2px;
}

body.so-stedif-active,
body.so-stedif-active #page,
body.so-stedif-active .site,
body.so-stedif-active .site-content,
body.so-stedif-active html{
  background:var(--so-bg) !important;
}
body.so-stedif-active .so-wrap{
  width:100%;
  max-width:100%;
  box-shadow:none;
}
body.so-stedif-active .entry-content,
body.so-stedif-active .page-content,
body.so-stedif-active .wp-block-group,
body.so-stedif-active .wp-site-blocks{
  padding-top:0 !important;
  padding-bottom:0 !important;
}

@media (max-width:720px){
  .so-wrap{padding:12px 10px;border-radius:0}
  .so-top,.so-toolbar{flex-direction:column;align-items:flex-start}
  .so-tr{grid-template-columns:1fr;gap:6px}
  .so-item{flex-direction:column}
  .so-modal-card{margin:4vh 10px 0;max-width:none}
  .so-summary{width:100%}
  .so-select{max-width:100%}
}

.so-ix{margin-top:8px;max-width:100%}
.so-ix-card[data-so-state="positive"]{box-shadow:inset 3px 0 0 var(--so-ok)}
.so-ix-card[data-so-state="mixed"]{box-shadow:inset 3px 0 0 var(--so-warn)}
.so-ix-card[data-so-state="attention"]{box-shadow:inset 3px 0 0 var(--so-bad)}
.so-ix-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.so-ix-btn{
  min-height:44px;min-width:44px;padding:8px 12px;border-radius:999px;
  border:1px solid var(--so-line);background:var(--so-btn-bg);color:var(--so-text);
  font:inherit;cursor:pointer
}
.so-ix-btn:focus-visible{outline:2px solid var(--so-gold);outline-offset:2px}
.so-ix-btn.is-on[data-reaction="like"]{background:rgba(46,204,113,.18);border-color:var(--so-ok)}
.so-ix-btn.is-on[data-reaction="dislike"]{background:rgba(255,77,77,.16);border-color:var(--so-bad)}
.so-ix-count{color:var(--so-muted);font-size:.92rem}
.so-ix-note{margin-top:8px;padding-top:8px;border-top:1px solid var(--so-line)}
.so-ix-note p{margin:4px 0;white-space:pre-wrap}
.so-ix-compose{display:flex;flex-direction:column;gap:8px;margin-top:8px;max-width:100%}
.so-ix-compose textarea,.so-ix-compose select{width:100%;max-width:100%;box-sizing:border-box}
.so-ix-panel{margin:12px 0}
.so-ix-item{border:1px solid var(--so-line);border-radius:12px;padding:12px;margin:8px 0;background:var(--so-item-bg)}
.so-wrap[data-theme="light"] .so-ix-btn.is-on[data-reaction="like"]{background:rgba(26,156,77,.12)}
.so-wrap[data-theme="light"] .so-ix-btn.is-on[data-reaction="dislike"]{background:rgba(217,54,54,.1)}
.so-crm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
.so-crm-list{display:flex;flex-direction:column;gap:8px}
.so-crm-card{background:var(--so-card);color:var(--so-text);border:1px solid var(--so-line);border-radius:12px;padding:12px;margin:8px 0;max-width:100%}
.so-crm-row{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.so-crm-form .so-input{width:100%;max-width:100%;box-sizing:border-box;min-height:44px}
.so-crm-card .so-ix-btn, .so-crm-row .so-ix-btn{min-height:44px;min-width:44px}
.so-wrap[data-theme="light"] .so-crm-card{background:var(--so-card);color:var(--so-text)}
.so-floral-card{background:var(--so-card);color:var(--so-text);border:1px solid var(--so-line);border-radius:12px;padding:12px;margin:8px 0;max-width:100%;overflow-wrap:anywhere}
.so-floral-card button,.so-floral-card input,.so-floral-card select,.so-floral-card textarea,.so-floral-row button,.so-floral-actions button,.so-floral-drawer button,.so-floral-drawer input,.so-floral-drawer select,.so-floral-drawer textarea{min-height:44px}
.so-floral-line{display:grid;grid-template-columns:1fr;gap:8px}
.so-floral-stack{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.so-floral-actions,.so-floral-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.so-floral-badge{display:inline-flex;align-items:center;min-height:28px;padding:2px 8px;border-radius:999px;border:1px solid var(--so-line);color:var(--so-muted);background:var(--so-item-bg)}
.so-floral-drawer{position:fixed;inset:0;z-index:80;background:var(--so-bg);color:var(--so-text);overflow:auto;padding:12px}
.so-floral-drawer-card{background:var(--so-card);color:var(--so-text);border:1px solid var(--so-line);border-radius:12px;padding:12px;max-width:720px;margin:0 auto}
.so-floral-media{margin:8px 0;padding:8px;border:1px solid var(--so-line);border-radius:12px;background:var(--so-item-bg)}
.so-floral-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}
.so-floral-thumb{background:var(--so-card);border:1px solid var(--so-line);border-radius:8px;overflow:hidden;color:var(--so-text)}
.so-floral-thumb img{width:100%;height:96px;object-fit:cover;display:block;background:var(--so-input-bg)}
.so-floral-thumb button{width:100%}
.so-floral-file{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.so-floral-lightbox{position:fixed;inset:0;z-index:90;background:var(--so-bg);color:var(--so-text);display:flex;flex-direction:column;padding:12px}
.so-floral-lightbox img{max-width:100%;max-height:calc(100vh - 80px);object-fit:contain;margin:auto;background:var(--so-card)}
.so-floral-error{color:var(--so-bad)}
.so-floral-line[hidden],.so-floral-stack[hidden],.so-floral-actions[hidden],.so-floral-drawer[hidden]{display:none !important}
@media (min-width:900px){.so-floral-line{grid-template-columns:minmax(0,2fr) repeat(4,minmax(0,1fr))}}
.so-wrap[data-theme="light"] .so-floral-card,.so-wrap[data-theme="light"] .so-floral-drawer,.so-wrap[data-theme="light"] .so-floral-thumb{background:var(--so-card);color:var(--so-text)}
.so-agenda-head,.so-agenda-switch,.so-agenda-nav,.so-agenda-filters,.so-agenda-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
.so-agenda-card{display:flex;justify-content:space-between;gap:12px;padding:12px;margin:8px 0;border:1px solid var(--so-line);border-radius:12px;background:var(--so-card);color:var(--so-text)}
.so-agenda-card p{margin:4px 0;color:var(--so-muted)}
.so-agenda-chip{display:inline-block;padding:2px 8px;border-radius:999px;border:1px solid var(--so-line);color:var(--so-text);background:var(--so-chip-active-bg)}
.so-agenda-chip.is-late{color:var(--so-warn)}
.so-agenda-priority-low,.so-agenda-priority-normal{opacity:.8}
.so-agenda-priority-high{border-color:var(--so-gold)}
.so-agenda-priority-urgent{color:var(--so-warn)}
.so-agenda-btn,.so-agenda-card .so-btn,.so-agenda-switch .so-btn,.so-agenda-filters .so-btn,.so-agenda-actions .so-btn{min-height:44px}
.so-agenda-drawer{position:fixed;inset:0;z-index:80;background:var(--so-bg);color:var(--so-text);overflow:auto;padding:12px}
.so-agenda-drawer-card{background:var(--so-card);color:var(--so-text);border:1px solid var(--so-line);border-radius:12px;padding:12px;max-width:720px;margin:0 auto}
.so-agenda-form .so-input,.so-agenda-form .so-select,.so-agenda-filters .so-input,.so-agenda-filters .so-select{width:100%;margin:0 0 8px}
.so-agenda-error{color:var(--so-warn)}
.so-agenda-week{display:flex;flex-direction:column;gap:8px}
.so-agenda-week-day.is-today,.so-agenda-day.is-today{outline:1px solid var(--so-gold)}
.so-agenda-month{display:flex;flex-direction:column;gap:8px}
.so-agenda-day{min-height:44px;display:flex;justify-content:space-between;align-items:center;background:var(--so-card);color:var(--so-text);border:1px solid var(--so-line);border-radius:12px;padding:8px 12px}
.so-agenda-error[hidden]{display:none !important}
@media (min-width:900px){
  .so-agenda-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-items:start}
  .so-agenda-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
}
.so-supply-head,.so-supply-switch,.so-supply-actions,.so-supply-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
.so-supply-card{display:flex;flex-direction:column;gap:6px;padding:12px;margin:8px 0;border:1px solid var(--so-line);border-radius:12px;background:var(--so-card);color:var(--so-text)}
.so-supply-card p{margin:0;color:var(--so-muted)}
.so-supply-chip{display:inline-flex;align-items:center;min-height:28px;padding:2px 8px;border-radius:999px;border:1px solid var(--so-line);color:var(--so-text);background:var(--so-chip-active-bg)}
.so-supply-chip.is-warn{color:var(--so-warn)}
.so-supply-btn,.so-supply-card .so-btn,.so-supply-switch .so-btn,.so-supply-actions .so-btn{min-height:44px}
.so-supply-drawer{position:fixed;inset:0;z-index:80;background:var(--so-bg);color:var(--so-text);overflow:auto;padding:12px}
.so-supply-drawer-card{background:var(--so-card);color:var(--so-text);border:1px solid var(--so-line);border-radius:12px;padding:12px;max-width:720px;margin:0 auto}
.so-supply-form .so-input,.so-supply-form .so-select{width:100%;margin:0 0 8px;min-height:44px;background:var(--so-input-bg);color:var(--so-text);border:1px solid var(--so-line)}
.so-supply-error{color:var(--so-warn)}
.so-supply-card[hidden],.so-supply-drawer[hidden],.so-supply-error[hidden]{display:none !important}
.so-wrap[data-theme="light"] .so-supply-card,.so-wrap[data-theme="light"] .so-supply-drawer{background:var(--so-card);color:var(--so-text)}
.so-wedding-screen{position:fixed;inset:0;z-index:70;overflow-x:hidden;overflow-y:auto;background:var(--so-bg);color:var(--so-text);padding:12px 12px 84px}
.so-wedding-head,.so-wedding-card,.so-wedding-now{background:var(--so-card);color:var(--so-text);border:1px solid var(--so-line);border-radius:16px;padding:16px;margin:0 0 12px}
.so-wedding-now{position:sticky;top:0;z-index:2}
.so-wedding-head h1{margin:4px 0;font-size:1.8rem}
.so-wedding-row{margin:8px 0;font-size:1.05rem}
.so-wedding-btn,.so-wedding-nav button,.so-wedding-nav a,.so-pwa-net{min-height:44px;min-width:44px}
.so-wedding-nav{position:sticky;bottom:0;display:flex;gap:8px;justify-content:space-around;padding:8px;background:var(--so-card);border-top:1px solid var(--so-line)}
.so-pwa-net{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;background:var(--so-card);color:var(--so-text);border:1px solid var(--so-line)}
.so-wedding-screen[hidden],.so-pwa-help[hidden],.so-pwa-net[hidden]{display:none !important}
.so-wrap[data-theme="light"] .so-wedding-screen,.so-wrap[data-theme="light"] .so-wedding-card{background:var(--so-bg);color:var(--so-text)}
.so-intake label,.so-guide section{display:block;margin:10px 0}
.so-intake .so-hp{position:absolute;left:-9999px;height:0;width:0;overflow:hidden}
.so-intake-result{min-height:1.2em}
.so-help-link{margin-left:8px}
.so-wrap{overflow-x:hidden}
.so-wrap:fullscreen,
.so-wrap:-webkit-full-screen{
  width:100vw;
  height:100vh;
  max-width:none;
  max-height:none;
  margin:0;
  border-radius:0;
  overflow-x:hidden;
  overflow-y:auto;
  background:var(--so-bg);
  padding:16px;
  box-sizing:border-box;
}
.so-wrap:fullscreen .so-modal,
.so-wrap:-webkit-full-screen .so-modal,
.so-wrap:fullscreen .so-toast,
.so-wrap:-webkit-full-screen .so-toast,
.so-wrap:fullscreen .so-lightbox,
.so-wrap:-webkit-full-screen .so-lightbox,
.so-wrap:fullscreen .so-floral-lightbox,
.so-wrap:-webkit-full-screen .so-floral-lightbox,
.so-wrap:fullscreen .so-floral-drawer,
.so-wrap:-webkit-full-screen .so-floral-drawer,
.so-wrap:fullscreen .so-supply-drawer,
.so-wrap:-webkit-full-screen .so-supply-drawer,
.so-wrap:fullscreen .so-agenda-drawer,
.so-wrap:-webkit-full-screen .so-agenda-drawer,
.so-wrap:fullscreen .so-wedding-screen,
.so-wrap:-webkit-full-screen .so-wedding-screen,
.so-wrap:fullscreen #soToastHost,
.so-wrap:-webkit-full-screen #soToastHost{
  position:fixed;
}
.so-tabs{display:flex;flex-wrap:wrap;gap:8px}
.so-nav-label{flex-basis:100%;font-size:.75rem;letter-spacing:.04em;color:var(--so-muted);margin-top:8px}
.so-search{position:relative;margin:12px 0}
.so-search input{width:100%;min-height:44px}
.so-search-results{position:absolute;z-index:30;left:0;right:0;max-height:70vh;overflow:auto;background:var(--so-card);color:var(--so-text);border:1px solid var(--so-line);border-radius:12px}
.so-search-group{padding:8px 12px}
.so-search-hit,.so-timeline-item,.so-attention-item{display:block;width:100%;text-align:left;background:transparent;color:inherit;border:0;border-bottom:1px solid var(--so-line);padding:12px;min-height:44px}
.so-search-hit.is-active{background:var(--so-chip-active-bg)}
.so-oggi-counters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.so-oggi-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:16px;border:1px solid var(--so-line);border-radius:16px;background:var(--so-card);min-height:96px}
.so-oggi-card strong{font-size:1.6rem;line-height:1}
.so-oggi-counters button,.so-attention-item button,.so-search-filters .so-chip,.so-file-picker .so-btn,.so-help-mark{min-height:44px}
#soSearchFilters[hidden]{display:none !important}
.so-home-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:12px 0}
.so-home-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px;min-height:96px;border:1px solid var(--so-line);border-radius:16px;background:var(--so-card);color:inherit;text-align:left}
.so-home-card strong{font-size:1.4rem}
.so-file-picker{display:flex;flex-wrap:wrap;gap:8px}
.so-file-row{display:flex;gap:8px;align-items:center;margin-top:8px}
.so-file-row img{width:64px;height:64px;object-fit:cover;border-radius:8px}
.so-help-pop{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:60;max-width:420px;width:calc(100% - 32px);background:var(--so-card);color:var(--so-text);border:1px solid var(--so-line);border-radius:16px;padding:16px}
.so-help-mark{min-width:44px;padding:0 10px}
.so-impersonation[hidden]{display:none !important}
.so-impersonation{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 12px;background:var(--so-warn);color:#111}
@media (max-width:720px){
  .so-search-filters{display:none}
  .so-search.is-open .so-search-filters,.so-search.is-open .so-search-results{display:block}
  .so-top-right{flex-wrap:wrap}
  .so-oggi-counters{grid-template-columns:1fr 1fr}
}
@media (min-width:721px){
  .so-search-open{display:none}
}
.so-toast{padding:12px 14px;margin:8px;border-radius:10px;background:#111;color:#fff}
.so-toast-error{background:#6b1d1d}
#soToastHost{position:fixed;right:12px;bottom:12px;z-index:40;max-width:320px}
.so-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.72);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;z-index:50}
.so-lightbox img{max-width:100%;max-height:70vh;object-fit:contain}
.so-media-preview img{width:96px;height:96px;object-fit:cover;border-radius:8px}
[data-so-section][data-open="0"] .so-section-body{display:none}
.so-row{display:flex;flex-wrap:wrap;gap:8px}
.so-btn:focus,.so-tab:focus{outline:2px solid currentColor;outline-offset:2px}
@media (prefers-reduced-motion: reduce){
  .so-toast,.so-lightbox,.so-card{animation:none !important;transition:none !important}
}
.so-toast{animation:so-in 180ms ease}
@keyframes so-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.so-reduce-motion .so-toast{animation:none}
/* APP SHELL — sidebar and main are the only grid children */
.so-app-shell{
  --so-bg-sidebar:#101820;
  --so-bg-main:#f4f1ec;
  --so-text:#243038;
  --so-muted:#5d6b76;
  --so-line:#e4ddd4;
  display:grid;
  grid-template-columns:240px minmax(0,1fr);
  min-height:100vh;
  background:var(--so-bg-main);
  color:var(--so-text);
}
.so-app-shell button,
.so-app-shell input,
.so-app-shell select,
.so-app-shell textarea{
  font:inherit;
  color:inherit;
}
.so-app-sidebar{
  background:#101820;
  color:#f4f7fb;
  min-height:100vh;
  padding:16px 12px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.so-sidebar-brand{display:flex;gap:10px;align-items:center}
.so-sidebar-brand strong{display:block;font-size:1rem}
.so-sidebar-brand span{display:block;color:#b7c3d0;font-size:.85rem}
.so-brand-logo{width:42px;height:42px;object-fit:contain;border-radius:10px;background:#fff}
.so-brand-fallback{width:42px;height:42px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:#2a3948;color:#fff}
.so-sidebar-nav{display:flex;flex-direction:column;gap:4px}
.so-sidebar-nav button{
  display:flex;gap:10px;align-items:center;min-height:44px;padding:8px 12px;
  border:0;border-radius:12px;background:transparent;color:inherit;text-align:left;font-size:15px;
}
.so-sidebar-nav button .so-ico{width:22px;height:22px;border-radius:6px;background:#243140;flex:0 0 22px}
.so-sidebar-nav button.is-active{background:#1f8f4e;color:#fff}
.so-sidebar-user{margin-top:auto;color:#b7c3d0;font-size:.9rem}
.so-app-main{min-width:0;display:flex;flex-direction:column}
.so-app-topbar{
  display:flex;align-items:center;gap:8px;
  padding:12px 16px;background:#101820;color:#f4f7fb;
}
.so-app-topbar .so-search{flex:1;margin:0;display:flex;align-items:center;gap:8px}
.so-app-topbar .so-search input{background:#1c2733;color:#fff;border:0;border-radius:999px;padding:0 16px}
.so-app-topbar .so-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.so-icon-btn,.so-nav-toggle{min-width:44px;min-height:44px;border-radius:999px;border:0;background:#1c2733;color:#fff}
.so-profile{position:relative}
.so-profile summary{min-width:44px;min-height:44px;display:flex;align-items:center;cursor:pointer;list-style:none}
.so-profile-menu,.so-bell-panel{
  position:absolute;right:0;top:48px;z-index:20;background:#fff;color:#243038;
  border:1px solid var(--so-line);border-radius:14px;padding:12px;min-width:220px;
}
.so-app-content{padding:16px;min-width:0;overflow-x:hidden}
.so-home-primary{min-width:0}
.so-event-bar{
  display:flex;flex-wrap:wrap;gap:12px;align-items:center;
  background:#fff;border:1px solid var(--so-line);border-radius:16px;padding:12px 16px;margin-bottom:16px;
}
.so-event-bar strong{display:block;font-size:1.05rem}
.so-event-bar span{color:var(--so-muted)}
.so-event-bar .so-select{min-height:44px}

/* MANAGER DASHBOARD */
.so-home-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,260px);gap:16px;align-items:start}
.so-hero{
  min-height:140px;border-radius:18px;padding:22px 24px;margin-bottom:16px;color:#243038;
  background:
    radial-gradient(circle at 80% 20%, rgba(255,255,255,.55), transparent 28%),
    linear-gradient(120deg, #f7efe6 0%, #e7f0ea 48%, #f3e7ea 100%);
}
.so-hero h1{font-size:1.7rem;margin:0 0 6px}
.so-hero p{margin:0;font-size:15px}
.so-hero-head{display:flex;justify-content:space-between;gap:16px}
.so-hero-when{text-align:right}
.so-hero-when b{display:block;font-size:1rem}
.so-app-shell .so-home-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.so-app-shell .so-home-card{
  position:relative;min-height:118px;min-width:0;padding:16px;border:0;border-radius:16px;
  text-align:left;box-shadow:0 1px 2px rgba(16,24,32,.06);
}
.so-app-shell .so-home-card,
.so-app-shell .so-home-card strong{color:#243038}
.so-app-shell .so-home-card strong{font-size:17px}
.so-app-shell .so-home-card span{font-size:14px;color:#4d5b66}
.so-app-shell .so-home-card b{font-size:15px;color:#243038}
.so-home-go{position:absolute;right:14px;bottom:12px}
.so-home-card.is-rose{background:#fde8ee}
.so-home-card.is-blue{background:#e7f1fb}
.so-home-card.is-green{background:#e5f6ea}
.so-home-card.is-sand{background:#fff1d6}
.so-home-card.is-lilac{background:#f3e9fb}
.so-home-card.is-pink{background:#fde7f3}
.so-home-card.is-mint{background:#e5f7f2}
.so-home-card.is-sky{background:#e7f4fb}
.so-home-lower{display:grid;grid-template-columns:1.3fr .8fr .9fr;gap:12px;margin-top:16px}
.so-home-lower section,.so-home-side section{background:#fff;border:1px solid var(--so-line);border-radius:16px;padding:14px}
.so-home-lower h2,.so-home-side h2{font-size:16px;margin:0 0 8px}
.so-home-lower button{display:block;width:100%;text-align:left;background:transparent;border:0;min-height:44px;padding:8px 0}
.so-recent{display:flex;flex-direction:column;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--so-line);min-height:44px;padding:8px 0}
.so-context-link{margin:0 0 8px}
.so-context-link button{min-height:44px}
.so-app-shell .so-modal-card{
  --so-modal-text:#f4f7fb;
  --so-modal-muted:#d7e0ea;
  --so-modal-border:rgba(255,255,255,.45);
  --so-modal-input:#243140;
  --so-text:var(--so-modal-text);
  --so-muted:var(--so-modal-muted);
  --so-line:var(--so-modal-border);
  background:#141c24;
  color:var(--so-modal-text);
  width:min(960px,calc(100vw - 32px));
  border-radius:18px;
}
.so-app-shell .so-modal-card .so-label,
.so-app-shell .so-modal-card .so-hint,
.so-app-shell .so-modal-card .so-item-sub,
.so-app-shell .so-modal-card .so-muted,
.so-app-shell .so-modal-card legend,
.so-app-shell .so-modal-card .so-chip,
.so-app-shell .so-modal-card .so-badge{color:var(--so-modal-muted)}
.so-app-shell .so-modal-card h1,
.so-app-shell .so-modal-card h2,
.so-app-shell .so-modal-card h3,
.so-app-shell .so-modal-card .so-title,
.so-app-shell .so-modal-card strong{color:var(--so-modal-text)}
.so-app-shell .so-modal-card .so-input,
.so-app-shell .so-modal-card .so-select,
.so-app-shell .so-modal-card textarea{background:var(--so-modal-input);color:#fff;border:1px solid var(--so-modal-border);min-height:44px}
.so-app-shell .so-modal-card .so-input::placeholder,
.so-app-shell .so-modal-card textarea::placeholder{color:#d0dae6}
.so-app-shell .so-modal-card option{background:#243140;color:#f4f7fb}
.so-app-shell .so-modal-card .so-appr-error,
.so-app-shell .so-modal-card .so-error{color:#ffd0d0}
.so-app-shell .so-modal-card .so-success{color:#b7f0c9}
.so-app-shell .so-file-picker .so-btn{min-height:44px}

/* CLIENT PORTAL */
.so-client-portal{
  --so-bg:#f7f3ee;
  --so-card:#ffffff;
  --so-card2:#fffdfb;
  --so-line:#eadfd4;
  --so-text:#2b241e;
  --so-muted:#4e453f;
  --so-btn-bg:#ffffff;
  --so-btn-hover:#f3ebe4;
  --so-input-bg:#ffffff;
  --so-item-bg:#ffffff;
  background:#f7f3ee;
  color:#2b241e;
  font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
}
.so-client-portal button,.so-client-portal input,.so-client-portal select,.so-client-portal textarea{font:inherit;color:inherit}
.so-client-header{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;border-bottom:1px solid #eadfd4}
.so-client-nav{display:flex;gap:8px;flex:1;overflow-x:auto}
.so-client-nav button{min-height:44px;border:0;background:transparent;border-radius:999px;padding:8px 14px;white-space:nowrap}
.so-client-nav button.is-active{background:#f3e7ea}
.so-couple-hero{border-radius:24px;padding:48px 24px;margin:16px 0;text-align:center;color:#fff;background:linear-gradient(180deg,rgba(43,36,30,.15),rgba(43,36,30,.45)),#c4a484}
.so-couple-hero h1{margin:8px 0;font-size:2rem}
.so-couple-countdown,.so-couple-page,.so-client-portal .so-card{background:#fff;color:#2b241e;border-radius:18px}
.so-badge-count{display:inline-flex;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#d45d73;color:#fff;align-items:center;justify-content:center;font-size:.8rem}
.so-client-menu{margin-left:auto}

.so-wrap[data-theme="dark"] .so-app-shell{
  --so-bg-main:#12161c;
  --so-text:#f4f7fb;
  --so-muted:#c5d0da;
  --so-line:rgba(255,255,255,.14);
  background:#12161c;
  color:#f4f7fb;
}
.so-wrap[data-theme="dark"] .so-event-bar,
.so-wrap[data-theme="dark"] .so-home-lower section,
.so-wrap[data-theme="dark"] .so-home-side section,
.so-wrap[data-theme="dark"] .so-app-content .so-card{
  background:#1c2430;
  color:#f4f7fb;
  border-color:rgba(255,255,255,.14);
}
.so-wrap[data-theme="dark"] .so-app-shell{
  --so-btn-bg:#243140;
  --so-btn-hover:#2c3a4c;
  --so-input-bg:#1a222c;
}
.so-wrap[data-theme="dark"] .so-hero,
.so-wrap[data-theme="dark"] .so-hero h1,
.so-wrap[data-theme="dark"] .so-hero p{color:#243038}
.so-wrap[data-theme="dark"] .so-home-lower h2,
.so-wrap[data-theme="dark"] .so-home-side h2,
.so-wrap[data-theme="dark"] .so-home-lower p,
.so-wrap[data-theme="dark"] .so-home-side p,
.so-wrap[data-theme="dark"] .so-home-lower button,
.so-wrap[data-theme="dark"] .so-home-side button{color:#f4f7fb}
.so-wrap[data-theme="dark"] .so-event-bar .so-btn{color:#f4f7fb;background:#243140;border-color:rgba(255,255,255,.2)}
.so-wrap[data-theme="dark"] .so-event-bar .so-select,
.so-wrap[data-theme="dark"] .so-app-shell .so-input,
.so-wrap[data-theme="dark"] .so-app-shell .so-select{background:#1a222c;color:#f4f7fb;border-color:rgba(255,255,255,.2)}
.so-wrap[data-theme="dark"] .so-profile-menu,
.so-wrap[data-theme="dark"] .so-bell-panel{background:#1c2430;color:#f4f7fb}
.so-client-portal[data-theme="dark"]{
  --so-bg:#16130f;
  --so-card:#241e18;
  --so-card2:#2c241c;
  --so-line:rgba(255,255,255,.14);
  --so-text:#f6f1ea;
  --so-muted:#d9cfc4;
  --so-btn-bg:#2c241c;
  --so-btn-hover:#3a3128;
  --so-input-bg:#1c1814;
  --so-item-bg:#241e18;
  background:#16130f;
  color:#f6f1ea;
}
.so-client-portal[data-theme="dark"] .so-client-header,
.so-client-portal[data-theme="dark"] .so-couple-countdown,
.so-client-portal[data-theme="dark"] .so-couple-page,
.so-client-portal[data-theme="dark"] .so-card{background:#241e18;color:#f6f1ea}
.so-client-portal[data-theme="dark"] .so-client-nav button.is-active{background:#3a3128;color:#f6f1ea}
@media (prefers-color-scheme: dark){
  .so-wrap[data-theme="auto"] .so-app-shell{
    --so-bg-main:#12161c;
    --so-text:#f4f7fb;
    --so-muted:#c5d0da;
    --so-line:rgba(255,255,255,.14);
    background:#12161c;
    color:#f4f7fb;
  }
  .so-wrap[data-theme="auto"] .so-app-shell{
    --so-btn-bg:#243140;
    --so-btn-hover:#2c3a4c;
    --so-input-bg:#1a222c;
  }
  .so-wrap[data-theme="auto"] .so-event-bar,
  .so-wrap[data-theme="auto"] .so-home-lower section,
  .so-wrap[data-theme="auto"] .so-home-side section,
  .so-wrap[data-theme="auto"] .so-app-content .so-card{background:#1c2430;color:#f4f7fb;border-color:rgba(255,255,255,.14)}
  .so-wrap[data-theme="auto"] .so-hero,
  .so-wrap[data-theme="auto"] .so-hero h1,
  .so-wrap[data-theme="auto"] .so-hero p{color:#243038}
  .so-wrap[data-theme="auto"] .so-home-lower h2,
  .so-wrap[data-theme="auto"] .so-home-side h2,
  .so-wrap[data-theme="auto"] .so-home-lower p,
  .so-wrap[data-theme="auto"] .so-home-side p,
  .so-wrap[data-theme="auto"] .so-home-lower button,
  .so-wrap[data-theme="auto"] .so-home-side button{color:#f4f7fb}
  .so-wrap[data-theme="auto"] .so-event-bar .so-btn{color:#f4f7fb;background:#243140;border-color:rgba(255,255,255,.2)}
  .so-wrap[data-theme="auto"] .so-event-bar .so-select,
  .so-wrap[data-theme="auto"] .so-app-shell .so-input,
  .so-wrap[data-theme="auto"] .so-app-shell .so-select{background:#1a222c;color:#f4f7fb;border-color:rgba(255,255,255,.2)}
  .so-client-portal[data-theme="auto"]{
    --so-bg:#16130f;--so-card:#241e18;--so-text:#f6f1ea;--so-muted:#d9cfc4;--so-line:rgba(255,255,255,.14);
    background:#16130f;color:#f6f1ea;
  }
  .so-client-portal[data-theme="auto"] .so-client-header,
  .so-client-portal[data-theme="auto"] .so-card{background:#241e18;color:#f6f1ea}
}
.so-tabbar{display:none}
.so-tabbar button{min-height:48px;border:0;background:transparent;color:#f4f7fb;font-size:12px;border-radius:12px}
.so-tabbar button.is-active{background:#1f8f4e;color:#fff}

/* RESPONSIVE */
@media (max-width:1024px){
  .so-app-shell{grid-template-columns:minmax(0,1fr)}
  .so-app-sidebar{position:fixed;z-index:40;width:min(260px,88vw);transform:translateX(-110%);height:100vh;overflow:auto}
  .so-wrap.is-nav-open .so-app-sidebar{transform:none}
  .so-nav-toggle{display:inline-flex}
  .so-home-layout,.so-home-lower,.so-app-shell .so-home-grid{grid-template-columns:1fr 1fr}
}
@media (min-width:1025px){
  .so-nav-toggle{display:none}
}
@media (max-width:1024px){
  .so-tabbar{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    position:fixed;left:0;right:0;bottom:0;z-index:45;
    gap:4px;padding:6px 6px calc(6px + env(safe-area-inset-bottom));
    background:#101820;border-top:1px solid rgba(255,255,255,.1);
  }
  .so-app-shell .so-app-content{padding-bottom:92px}
}
@media (max-width:720px){
  .so-wrap{padding-bottom:16px}
  .so-app-topbar{flex-wrap:wrap}
  .so-app-topbar .so-search{flex:1 1 100%;min-width:0}
  .so-app-topbar .so-search input{width:100%;min-width:0}
  .so-hero-head{flex-direction:column}
  .so-hero-when{text-align:left}
  .so-home-layout,.so-home-lower,.so-app-shell .so-home-grid{grid-template-columns:1fr}
  .so-client-portal .so-client-nav{display:none}
  .so-client-portal.is-nav-open .so-client-nav{display:flex;flex-direction:column;position:absolute;left:0;right:0;top:64px;background:#fff;z-index:30;padding:8px}
  .so-app-shell .so-modal-card{width:calc(100vw - 16px);max-height:calc(100vh - 16px);overflow:auto}
}
.so-delivery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.so-delivery-card{display:flex;flex-direction:column;gap:6px;min-height:160px}
.so-delivery-card .so-btn{min-height:44px}
.so-delivery-filters{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px}
@media (max-width:720px){.so-delivery-grid{grid-template-columns:1fr}}
.so-preview-shell{position:fixed;inset:0;z-index:80;display:flex;flex-direction:column;background:#f7f3ee;overflow:auto}
.so-preview-bar{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 16px;background:#2b241e;color:#f7f3ee}
.so-preview-bar strong{letter-spacing:.08em;font-size:.78rem}
.so-preview-actions{display:flex;gap:8px;flex-wrap:wrap}
.so-preview-shell .so-client-portal{flex:1;overflow:auto}
.so-record-flash{outline:2px solid #c4a574;outline-offset:2px}
.so-demo-badge{position:fixed;top:12px;right:12px;z-index:90;padding:6px 10px;border-radius:999px;background:#2b241e;color:#f7f3ee;letter-spacing:.12em;font-size:.72rem}
.so-client-portal,.so-preview-shell,.so-modal{overflow-x:hidden}
.so-client-portal .so-btn,.so-preview-bar .so-btn,.so-event-bar .so-btn{min-height:44px}
.so-client-portal .so-btn.is-active{
  background:#2b241e;
  color:#ffffff;
  border:2px solid #1a140f;
  box-shadow:0 0 0 3px #c4a484, 0 8px 18px rgba(43,36,30,.28);
}
.so-client-portal .so-btn:disabled{opacity:.45;cursor:not-allowed}
.so-client-portal .so-btn:focus-visible{outline:3px solid #8a5a3b;outline-offset:3px}
.so-client-portal .so-btn[aria-busy="true"]{position:relative;padding-left:36px}
.so-client-portal .so-btn[aria-busy="true"]::before{
  content:"";
  position:absolute;
  left:12px;
  top:50%;
  width:14px;
  height:14px;
  margin-top:-7px;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  animation:so-spin .7s linear infinite;
}
@keyframes so-spin{to{transform:rotate(360deg)}}
.so-client-portal .so-appr-error{color:#9b1c1c}
.so-client-portal .so-preview-note{margin:12px 0;padding:12px 14px;background:#fff;border:1px solid #eadfd4;border-radius:14px;color:#2b241e}
.so-preview-tag{margin-top:4px;font-size:.75rem;letter-spacing:.06em;color:#f7f3ee}
.so-client-portal .so-item,
.so-client-portal .so-card,
.so-client-portal .so-actions{min-width:0;max-width:100%}
.so-client-portal .so-item-title,
.so-client-portal .so-item-sub{overflow-wrap:anywhere}
@media (max-width:430px){
  .so-client-portal{padding:12px 10px}
  .so-client-portal .so-btn,
  .so-client-portal [data-appr-box] .so-btn,
  .so-client-portal [data-appr-box] textarea,
  .so-client-portal [data-appr-box] .so-input,
  .so-client-portal .so-appr-choices .so-btn{width:100%;max-width:100%}
  .so-app-shell .so-modal-card{width:calc(100vw - 12px);margin:6px auto;max-height:calc(100vh - 12px);overflow:auto}
  .so-preview-bar{flex-direction:column;align-items:stretch}
}
@media (max-width:430px){
  .so-preview-bar{flex-direction:column;align-items:stretch}
  .so-event-bar{display:flex;flex-wrap:wrap;gap:8px}
}


/* Unambiguous and accessible installation feedback. */
.so-pwa-install-float{position:fixed;z-index:2147481998;bottom:19px;left:16px;background:#195d55;color:#fff;border:2px solid #fff;border-radius:30px;padding:11px 16px;font:700 13px/1.3 system-ui,sans-serif;box-shadow:0 6px 19px #0004;cursor:pointer}
.so-pwa-install-float:focus-visible{outline:3px solid #1179dc;outline-offset:3px}
.so-pwa-install-help{position:fixed;z-index:2147482050;bottom:76px;left:16px;max-width:min(380px,calc(100vw - 32px));background:#fff;color:#183342;padding:14px 16px;border:1px solid #5f7e89;box-shadow:0 6px 24px #0004;border-radius:12px;font:14px/1.5 system-ui,sans-serif;display:flex;align-items:start;gap:10px}
.so-pwa-install-help[hidden]{display:none}
.so-pwa-install-help button{border:0;background:transparent;color:#183342;font-size:23px;cursor:pointer}
.so-input[aria-invalid=true]{border:2px solid #c52b2b!important;box-shadow:0 0 0 2px #fbe6e6!important}
.so-action-feedback{position:fixed;z-index:2147482050;left:50%;transform:translateX(-50%);top:17px;max-width:min(520px,calc(100vw - 30px));padding:12px 18px;background:#e8f8ee;color:#175435;border:2px solid #428761;border-radius:12px;box-shadow:0 8px 24px #0003;font:700 14px/1.4 system-ui,sans-serif;text-align:center}
.so-action-feedback[data-status="error"]{background:#fff0f0;color:#8f1827;border-color:#d75460}
.so-action-feedback[hidden]{display:none}
