/*
 * Sala Operativa 2.2.4 — design system layer (M03, M16, M21).
 * Loaded after front.css. Staff: navy sidebar, ivory topbar, light content.
 * Couple portal: ivory, champagne, blush, editorial serif titles.
 * Dark mode stays optional (data-theme="dark" or auto + OS dark).
 * No external fonts: the serif stack uses fonts already on the device.
 */

/* ------------------------------------------------------------------ tokens */
.so-app-shell,
.so-dialog,
.so-client-portal{
  --ds-navy:#14212B;
  --ds-navy-2:#1B2B37;
  --ds-navy-line:rgba(255,255,255,.08);
  --ds-bg:#FAF8F5;
  --ds-surface:#FFFFFF;
  --ds-surface-2:#FFFDF9;
  --ds-champagne:#EFD8B8;
  --ds-champagne-2:#E4C79F;
  --ds-champagne-ink:#7A5B33;
  --ds-coral:#F15D70;
  --ds-coral-ink:#D9435A;
  --ds-coral-soft:#FDE9EC;
  --ds-text:#19232C;
  --ds-muted:#5F6B75;
  --ds-line:#EAE3DB;
  --ds-ok:#2F7D57;  --ds-ok-soft:#E3F3E9;
  --ds-warn:#9A6A12; --ds-warn-soft:#FBF0D9;
  --ds-info:#2F5E8C; --ds-info-soft:#E6EEF8;
  --ds-err:#B42335;  --ds-err-soft:#FDECEE;
  --ds-shadow:0 1px 2px rgba(25,35,44,.04),0 6px 18px rgba(25,35,44,.05);
  --ds-radius:14px;
  --ds-radius-lg:18px;
  --ds-focus:0 0 0 3px rgba(241,93,112,.35);
  --ds-serif:"Cormorant Garamond","Playfair Display","Libre Baskerville",Georgia,"Times New Roman",serif;
  --ds-sans:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
.so-client-portal{
  --ds-bg:#FBF7F2;
  --ds-surface-2:#FFFCF8;
  --ds-blush:#F6E4E6;
  --ds-blush-ink:#A2475A;
}

/* ------------------------------------------------------------- staff shell */
.so-wrap:has(> .so-app-shell),
.so-wrap:has(.so-app-shell){padding:0;border-radius:0;background:var(--ds-bg,#FAF8F5)}
.so-app-shell{
  --so-bg-main:var(--ds-bg);
  --so-text:var(--ds-text);
  --so-muted:var(--ds-muted);
  --so-line:var(--ds-line);
  --so-card:var(--ds-surface);
  --so-card2:var(--ds-surface);
  --so-card-grad:var(--ds-surface);
  --so-btn-bg:var(--ds-surface);
  --so-btn-hover:#F6F1EA;
  --so-input-bg:var(--ds-surface);
  --so-item-bg:var(--ds-surface);
  --so-chip-active-bg:var(--ds-coral-soft);
  --so-gold:var(--ds-champagne-ink);
  grid-template-columns:236px minmax(0,1fr);
  background:var(--ds-bg);
  color:var(--ds-text);
  font-family:var(--ds-sans);
  font-size:15px;
  line-height:1.45;
}
.so-app-sidebar{
  background:var(--ds-navy);
  color:#E9EEF3;
  padding:20px 14px 16px;
  gap:18px;
  position:sticky;top:0;height:100vh;overflow:auto;
  scrollbar-width:thin;
}
.so-sidebar-brand{padding:4px 6px 14px;border-bottom:1px solid var(--ds-navy-line)}
.so-sidebar-brand strong{font-family:var(--ds-serif);font-size:1.25rem;font-weight:600;letter-spacing:.01em;color:#fff}
.so-sidebar-brand span{color:#AEB9C4;font-size:.8rem}
.so-brand-fallback{width:44px;height:44px;border-radius:12px;background:transparent;color:var(--ds-champagne);border:1px solid rgba(239,216,184,.35)}
.so-brand-logo{background:transparent}
.so-sidebar-nav{gap:2px}
.so-sidebar-nav button{
  min-height:42px;padding:9px 12px;border-radius:10px;font-size:14.5px;color:#D5DDE5;
  position:relative;transition:background .15s ease,color .15s ease;
}
.so-sidebar-nav button:hover{background:rgba(255,255,255,.05);color:#fff}
.so-sidebar-nav button .so-ico{
  width:20px;height:20px;flex:0 0 20px;border-radius:0;background-color:currentColor;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:20px;mask-size:20px;opacity:.9;
}
.so-sidebar-nav button.is-active{background:rgba(239,216,184,.14);color:#fff}
.so-sidebar-nav button.is-active::before{content:"";position:absolute;left:-14px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--ds-champagne)}
.so-sidebar-nav button.is-active .so-ico{color:var(--ds-champagne);opacity:1}
.so-nav-count{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--ds-coral);color:#fff;font-size:11.5px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}
.so-nav-count[hidden]{display:none}
.so-sidebar-user{border-top:1px solid var(--ds-navy-line);padding-top:12px;color:#AEB9C4;font-size:.82rem}

.so-app-topbar{
  background:var(--ds-surface-2);color:var(--ds-text);
  border-bottom:1px solid var(--ds-line);
  min-height:68px;padding:12px 24px;gap:12px;position:sticky;top:0;z-index:30;
}
.so-app-topbar .so-search{max-width:520px}
.so-app-topbar .so-search input{
  background:var(--ds-surface);color:var(--ds-text);border:1px solid var(--ds-line);
  border-radius:12px;min-height:42px;padding:0 14px 0 38px;width:100%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235F6B75' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M20 20l-4.2-4.2'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:12px center;background-size:17px;
}
.so-app-topbar .so-search input::placeholder{color:#8A949D}
.so-app-topbar .so-btn{background:var(--ds-surface);color:var(--ds-text);border:1px solid var(--ds-line)}
.so-icon-btn,.so-nav-toggle{background:var(--ds-surface);color:var(--ds-text);border:1px solid var(--ds-line);border-radius:12px}
.so-profile summary{padding:0 12px;border:1px solid var(--ds-line);border-radius:12px;background:var(--ds-surface)}
.so-profile-menu,.so-bell-panel{box-shadow:0 12px 32px rgba(25,35,44,.14);border-color:var(--ds-line)}
.so-bell-panel .so-btn{display:block;width:100%;text-align:left;margin-bottom:6px}

.so-app-content{padding:24px 28px 40px;max-width:1440px;width:100%}
.so-event-bar{
  background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-radius);
  box-shadow:var(--ds-shadow);padding:12px 16px;gap:10px;
}
.so-event-bar > div span:first-child{font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ds-muted)}
.so-event-bar strong{font-family:var(--ds-serif);font-size:1.25rem;font-weight:600}
.so-event-bar .so-select{max-width:260px;background:var(--ds-surface);color:var(--ds-text);border-color:var(--ds-line)}

/* ---------------------------------------------------------- base controls */
.so-app-shell .so-btn,.so-dialog .so-btn,.so-client-portal .so-btn{
  min-height:40px;padding:8px 14px;border-radius:10px;font-size:14px;font-weight:500;
  background:var(--ds-surface);color:var(--ds-text);border:1px solid var(--ds-line);
  transition:background .15s ease,border-color .15s ease,box-shadow .15s ease;
}
.so-app-shell .so-btn:hover,.so-dialog .so-btn:hover,.so-client-portal .so-btn:hover{background:#F6F1EA;border-color:#DED4C8}
.so-app-shell .so-btn-primary,.so-dialog .so-btn-primary,.so-client-portal .so-btn-primary{background:var(--ds-coral);border-color:var(--ds-coral);color:#fff}
.so-app-shell .so-btn-primary:hover,.so-dialog .so-btn-primary:hover,.so-client-portal .so-btn-primary:hover{background:var(--ds-coral-ink);border-color:var(--ds-coral-ink)}
.so-app-shell .so-btn-ghost,.so-dialog .so-btn-ghost,.so-client-portal .so-btn-ghost{background:transparent;border-color:transparent}
.so-app-shell .so-btn-danger,.so-dialog .so-btn-danger,.so-client-portal .so-btn-danger{color:var(--ds-err);border-color:#F2C4CA;background:var(--ds-err-soft)}
.so-btn-sm{min-height:34px !important;padding:5px 11px !important;font-size:13px !important}
.so-app-shell .so-btn:disabled,.so-dialog .so-btn:disabled{opacity:.55;cursor:not-allowed}
.so-app-shell .so-btn[aria-busy="true"],.so-dialog .so-btn[aria-busy="true"]{cursor:progress;opacity:.8}
.so-app-shell :focus-visible,.so-dialog :focus-visible,.so-client-portal :focus-visible{outline:2px solid var(--ds-coral);outline-offset:2px;box-shadow:var(--ds-focus)}
.so-app-shell .so-input,.so-app-shell .so-select,.so-dialog .so-input,.so-dialog .so-select,.so-client-portal .so-input,.so-client-portal .so-select{
  background:var(--ds-surface);color:var(--ds-text);border:1px solid var(--ds-line);border-radius:10px;min-height:42px;font-size:14.5px;
}
.so-app-shell textarea.so-input,.so-dialog textarea.so-input,.so-client-portal textarea.so-input{min-height:96px;line-height:1.5;resize:vertical}
.so-app-shell .so-input:focus,.so-app-shell .so-select:focus,.so-dialog .so-input:focus,.so-client-portal .so-input:focus{border-color:var(--ds-coral);box-shadow:var(--ds-focus)}
.so-app-shell .so-label,.so-dialog .so-label,.so-client-portal .so-label{display:block;font-size:13px;font-weight:600;color:var(--ds-text);margin:12px 0 6px}
.so-app-shell .so-hint,.so-dialog .so-hint,.so-client-portal .so-hint{font-size:13px;color:var(--ds-muted)}
.so-app-shell .so-chip,.so-client-portal .so-chip{border:1px solid var(--ds-line);background:var(--ds-surface);color:var(--ds-text);min-height:36px;padding:6px 12px;font-size:13px}
.so-app-shell .so-chip.is-active,.so-client-portal .so-chip.is-active{background:var(--ds-coral-soft);border-color:#F6B9C2;color:var(--ds-coral-ink)}
.so-app-shell .so-card,.so-client-portal .so-card{background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-radius-lg);box-shadow:var(--ds-shadow);padding:20px}
.so-app-content > .so-panels .so-panel > .so-card{padding:22px 24px}
.so-app-shell .so-card h2,.so-client-portal .so-card h2{font-size:1.15rem;margin:0 0 12px}
.so-title-serif,.so-app-shell .so-agenda-head h2,.so-app-shell #soTimeline h2,.so-app-shell #soReports h2,.so-app-shell #soHelp h2{
  font-family:var(--ds-serif);font-weight:600;letter-spacing:.005em;font-size:1.7rem;line-height:1.15;margin:0 0 4px;color:var(--ds-text)
}
.so-sr{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.so-check{display:flex;align-items:center;gap:8px;min-height:36px;font-size:14px;cursor:pointer}
.so-check input{width:18px;height:18px;accent-color:var(--ds-coral)}

/* Badges: one vocabulary across modules */
.so-app-shell .so-badge,.so-dialog .so-badge,.so-client-portal .so-badge{
  display:inline-flex;align-items:center;gap:4px;min-height:24px;padding:2px 10px;border-radius:999px;
  font-size:12px;font-weight:600;background:#F2EEE8;color:#4E5A64;border:0;
}
.so-badge.is-shared,.so-badge[data-status="confirmed"]{background:var(--ds-ok-soft);color:var(--ds-ok)}
.so-badge.is-internal,.so-badge[data-status="cancelled"]{background:#EFEFEF;color:#5B6168}
.so-badge.is-reminder,.so-badge[data-status="scheduled"]{background:var(--ds-warn-soft);color:var(--ds-warn)}
.so-badge[data-status="completed"]{background:var(--ds-info-soft);color:var(--ds-info)}
.so-badge[data-status="missed"]{background:var(--ds-err-soft);color:var(--ds-err)}

/* Inline feedback, empty, skeleton, progress */
.so-inline-msg{margin:8px 0 0;font-size:13px;font-weight:600}
.so-inline-msg.is-ok{color:var(--ds-ok)}
.so-inline-msg.is-err{color:var(--ds-err)}
.so-app-shell .so-empty,.so-client-portal .so-empty,.so-dialog .so-empty{
  font-size:14.5px;color:var(--ds-muted);text-align:center;padding:36px 16px;border:1px dashed #DDD3C7;border-radius:var(--ds-radius);background:var(--ds-surface-2)
}
.so-empty.is-error{border-color:#F2C4CA;background:var(--ds-err-soft);color:var(--ds-err)}
.so-empty .so-btn{margin-top:10px}
.so-skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.so-skeleton{height:120px;border-radius:var(--ds-radius);background:linear-gradient(90deg,#F2EDE6 25%,#F8F4EF 37%,#F2EDE6 63%);background-size:400% 100%;animation:ds-shimmer 1.3s ease infinite}
@keyframes ds-shimmer{0%{background-position:100% 50%}100%{background-position:0 50%}}
.so-upbar{margin:8px 0;min-width:200px;max-width:420px}
.so-upbar-track{height:8px;border-radius:999px;background:#EFE8DF;overflow:hidden}
.so-upbar-fill{height:100%;width:0;background:var(--ds-coral);border-radius:999px;transition:width .2s ease}
.so-upbar[data-phase="processing"] .so-upbar-fill{background:repeating-linear-gradient(45deg,var(--ds-coral) 0 10px,#F58A98 10px 20px);background-size:28px 28px;animation:ds-stripes 1s linear infinite}
.so-upbar[data-phase="done"] .so-upbar-fill{background:var(--ds-ok)}
.so-upbar[data-phase="error"] .so-upbar-fill{background:var(--ds-err)}
.so-upbar-label{font-size:12.5px;color:var(--ds-muted,#5F6B75);margin-top:4px}
.so-upbar[data-phase="error"] .so-upbar-label{color:var(--ds-err,#B42335);font-weight:600}
@keyframes ds-stripes{to{background-position:28px 0}}
.so-undo{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:10px 14px;margin-bottom:12px;border-radius:12px;background:var(--ds-navy);color:#fff;font-size:14px}
.so-undo .so-btn{background:transparent;color:var(--ds-champagne);border-color:rgba(239,216,184,.4)}
.so-link-btn{background:none;border:0;padding:8px 0 0;color:var(--ds-coral-ink);font-weight:600;font-size:13.5px;cursor:pointer}
.so-link-btn:hover{text-decoration:underline}

/* Section header + toolbar shared by new modules */
.so-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;flex-wrap:wrap}
.so-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}
.so-toolbar .so-input{min-width:220px}
.so-toolbar .so-select{width:auto}
.so-field-inline{display:block}

/* --------------------------------------------------------- manager home */
.so-home{display:flex;flex-direction:column;gap:20px}
.so-home-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.so-home-head h1{font-size:2.2rem;margin:0}
.so-home-head p{margin:4px 0 0;color:var(--ds-muted)}
.so-home-when{text-align:right}
.so-home-when span{display:block;color:var(--ds-muted);font-size:14px;text-transform:capitalize}
.so-home-when b{font-size:1.3rem;font-weight:600}
.so-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.so-kpi{
  display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;
  min-height:124px;padding:16px 18px;border-radius:var(--ds-radius-lg);border:1px solid transparent;cursor:pointer;
  color:var(--ds-text);transition:transform .15s ease,box-shadow .15s ease;
}
.so-kpi:hover{transform:translateY(-1px);box-shadow:var(--ds-shadow)}
.so-kpi.is-sage{background:#E9F3EC}
.so-kpi.is-rose{background:#FCE8EC}
.so-kpi.is-sky{background:#E8F0FA}
.so-kpi.is-champagne{background:#FBF0DF}
.so-kpi.is-ivory{background:var(--ds-surface);border-color:var(--ds-line)}
.so-kpi-ico,.so-row-ico{width:24px;height:24px;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:22px;mask-size:22px;-webkit-mask-position:center;mask-position:center}
.so-kpi.is-sage .so-kpi-ico{color:#2F7D57}.so-kpi.is-rose .so-kpi-ico{color:var(--ds-coral-ink)}.so-kpi.is-sky .so-kpi-ico{color:#2F5E8C}.so-kpi.is-champagne .so-kpi-ico{color:#9A6A12}.so-kpi.is-ivory .so-kpi-ico{color:var(--ds-champagne-ink)}
.so-kpi-label{font-size:14px;color:#3E4A54}
.so-kpi-value{font-size:1.75rem;font-weight:700;line-height:1.1;margin-top:auto}
.so-home-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.so-home-cols.is-secondary{grid-template-columns:1.2fr 1fr 1fr}
.so-panel-card{background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-radius-lg);box-shadow:var(--ds-shadow);padding:18px 18px 14px;min-width:0;display:flex;flex-direction:column}
.so-panel-card > header h2{font-size:1.05rem;font-weight:700;margin:0 0 10px}
.so-panel-card .so-link-btn{margin-top:auto;align-self:flex-start}
.so-rows{list-style:none;margin:0;padding:0}
.so-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #F1ECE5}
.so-row:last-child{border-bottom:0}
.so-row-ico{flex:0 0 34px;width:34px;height:34px;border-radius:10px;-webkit-mask-size:18px;mask-size:18px;color:var(--ds-coral-ink);background-color:currentColor;opacity:.9}
.so-row-main{display:flex;flex-direction:column;min-width:0;flex:1}
.so-row-main b{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.so-row-main b a{color:inherit;text-decoration:none}
.so-row-main span{font-size:12.5px;color:var(--ds-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.so-row-empty{padding:12px 0;color:var(--ds-muted);font-size:14px}
.so-pill{flex:0 0 auto;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--ds-coral-soft);color:var(--ds-coral-ink);white-space:nowrap}
.so-pill.is-late{background:var(--ds-err-soft);color:var(--ds-err)}
.so-mini-tl{list-style:none;margin:0;padding:0 0 0 4px;position:relative}
.so-mini-tl::before{content:"";position:absolute;left:30px;top:6px;bottom:6px;width:1px;background:var(--ds-line)}
.so-mini-tl li{display:flex;align-items:center;gap:14px;padding:9px 0;position:relative}
.so-mini-date{flex:0 0 54px;display:flex;flex-direction:column;align-items:center;font-size:11.5px;color:var(--ds-muted);background:var(--ds-surface);position:relative;z-index:1}
.so-mini-date b{font-size:1.1rem;color:var(--ds-text)}
.so-quick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.so-quick-item{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:44px;padding:8px 12px;border:1px solid var(--ds-line);border-radius:10px;background:var(--ds-surface-2);color:var(--ds-text);cursor:pointer;text-align:left;font-size:14px}
.so-quick-item:hover{border-color:#DCCFBF;background:#FBF6EF}
.so-quick-item b{font-weight:700}
.so-mini-title{font-size:13px;margin:12px 0 4px;color:var(--ds-muted);text-transform:uppercase;letter-spacing:.05em}
.so-app-shell .so-recent{border-bottom:1px solid #F1ECE5}
.so-app-shell .so-recent b{font-weight:600}
.so-app-shell .so-recent span{font-size:12.5px;color:var(--ds-muted)}

/* ------------------------------------------------------------- timeline */
.so-tl{list-style:none;margin:8px 0 0;padding:0 0 0 28px;position:relative}
.so-tl::before{content:"";position:absolute;left:11px;top:4px;bottom:4px;width:1px;background:var(--ds-line)}
.so-tl-month{margin:18px 0 8px -28px;padding-left:28px;font-family:var(--ds-serif);font-size:1.15rem;font-weight:600;text-transform:capitalize;color:var(--ds-champagne-ink)}
.so-tl-now{position:relative;margin:10px 0;height:0;border-top:1px dashed var(--ds-coral)}
.so-tl-now span{position:absolute;left:-28px;top:-11px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--ds-coral);color:#fff;padding:2px 8px;border-radius:999px}
.so-tl-item{position:relative;margin:0 0 12px}
.so-tl-dot{position:absolute;left:-23px;top:22px;width:11px;height:11px;border-radius:50%;background:var(--ds-surface);border:2px solid var(--ds-champagne-2)}
.so-tl-item[data-tl-state="today"] .so-tl-dot,.so-tl-item[data-tl-state="ongoing"] .so-tl-dot{background:var(--ds-coral);border-color:var(--ds-coral);box-shadow:0 0 0 4px var(--ds-coral-soft)}
.so-tl-item[data-tl-state="completed"] .so-tl-dot{background:var(--ds-ok);border-color:var(--ds-ok)}
.so-tl-item[data-tl-state="past"] .so-tl-dot{border-color:#C9C2B9}
.so-tl-item[data-tl-state="cancelled"] .so-tl-dot{border-color:#C9C2B9;background:#EEE}
.so-tl-card{display:flex;gap:16px;align-items:flex-start;background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-radius);padding:14px 16px;box-shadow:var(--ds-shadow)}
.so-tl-item[data-tl-state="past"] .so-tl-card,.so-tl-item[data-tl-state="cancelled"] .so-tl-card{opacity:.72;box-shadow:none}
.so-tl-item[data-tl-state="cancelled"] h3{text-decoration:line-through}
.so-tl-item.is-wedding .so-tl-card{background:linear-gradient(120deg,#FFF8F0,#FCEDEF);border-color:#F1D6D9}
.so-tl-date{flex:0 0 52px;text-align:center;border-right:1px solid var(--ds-line);padding-right:12px}
.so-tl-date strong{display:block;font-size:1.5rem;line-height:1;font-weight:700}
.so-tl-date span{font-size:12px;text-transform:uppercase;color:var(--ds-muted);letter-spacing:.06em}
.so-tl-body{flex:1;min-width:0}
.so-tl-body h3{font-size:1rem;margin:0 0 4px;font-weight:700}
.so-tl-meta{margin:0;font-size:13.5px;color:var(--ds-muted)}
.so-tl-desc{margin:6px 0 0;font-size:14px}
.so-tl-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.so-tl-side{display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex:0 0 auto}
.so-countdown{display:inline-flex;align-items:center;min-height:30px;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:700;background:var(--ds-coral-soft);color:var(--ds-coral-ink);white-space:nowrap}
.so-countdown[data-cd-state="today"],.so-countdown[data-cd-state="ongoing"]{background:var(--ds-coral);color:#fff}
.so-countdown[data-cd-state="past"]{background:#F1EEEA;color:#6B6259}
.so-countdown[data-cd-state="completed"]{background:var(--ds-ok-soft);color:var(--ds-ok)}
.so-countdown[data-cd-state="cancelled"]{background:#EFEFEF;color:#5B6168}
.so-agenda-switch{display:flex;flex-wrap:wrap;gap:6px}
.so-agenda-switch .so-btn.is-on{background:var(--ds-navy);color:#fff;border-color:var(--ds-navy)}
.so-agenda-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.so-agenda-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}
.so-agenda-filters .so-select,.so-agenda-filters .so-input{width:auto;min-width:160px}

/* ------------------------------------------------------- notebook (M11) */
.so-notes-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.so-note{--note:#FFFDF8;--note-line:#EFE6D8;display:flex;flex-direction:column;gap:8px;min-height:180px;padding:16px;border-radius:var(--ds-radius);background:var(--note);border:1px solid var(--note-line);box-shadow:0 1px 0 rgba(0,0,0,.02),0 8px 20px -14px rgba(60,40,20,.35);position:relative}
.so-note[data-color="rose"]{--note:#FDF0F2;--note-line:#F4D6DB}
.so-note[data-color="champagne"]{--note:#FBF1E2;--note-line:#EFDCC0}
.so-note[data-color="sage"]{--note:#EFF5EF;--note-line:#D6E6D7}
.so-note[data-color="sky"]{--note:#EEF4FA;--note-line:#D5E2F0}
.so-note-top{display:flex;gap:8px;align-items:flex-start}
.so-note h3{font-family:var(--ds-serif);font-size:1.2rem;font-weight:600;margin:0;line-height:1.2;flex:1;overflow-wrap:anywhere}
.so-note-body{margin:0;font-size:14.5px;line-height:1.55;color:#36414A;overflow-wrap:anywhere;flex:1}
.so-note-tags{display:flex;flex-wrap:wrap;gap:6px}
.so-note-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid var(--note-line);padding-top:8px;margin-top:auto}
.so-note-actions{display:flex;gap:6px;flex-wrap:wrap}
.so-note .so-badge .so-countdown{min-height:0;padding:0;background:none;color:inherit;font-weight:700}
.so-pin{flex:0 0 32px;width:32px;height:32px;border-radius:8px;border:1px solid transparent;background:transparent;color:#A69B8E;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.so-pin:hover{background:rgba(0,0,0,.04)}
.so-pin.is-on{color:var(--ds-coral);transform:rotate(-20deg)}
.so-swatches{border:0;padding:0;margin:8px 0;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.so-swatches legend{margin:0 0 6px}
.so-swatch{position:relative;width:32px;height:32px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #D9CFC3;cursor:pointer;background:#FFFDF8}
.so-swatch[data-color="rose"]{background:#FDF0F2}.so-swatch[data-color="champagne"]{background:#FBF1E2}.so-swatch[data-color="sage"]{background:#EFF5EF}.so-swatch[data-color="sky"]{background:#EEF4FA}
.so-swatch input{position:absolute;inset:0;opacity:0;cursor:pointer;margin:0}
.so-swatch:has(input:checked){box-shadow:0 0 0 2px var(--ds-coral)}
.so-swatch:has(input:focus-visible){outline:2px solid var(--ds-coral);outline-offset:2px}
.so-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.so-form-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}

/* --------------------------------------------------------- board (M10) */
.so-board{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.so-post{background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-radius);padding:14px 18px;box-shadow:var(--ds-shadow)}
.so-post.is-unread{border-left:3px solid var(--ds-coral)}
.so-post.is-pinned{background:linear-gradient(0deg,var(--ds-surface),var(--ds-surface)) padding-box,linear-gradient(90deg,var(--ds-champagne),var(--ds-line)) border-box}
.so-post-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.so-post-toggle{display:flex;align-items:center;gap:8px;background:none;border:0;padding:4px 0;font:inherit;color:inherit;cursor:pointer;text-align:left;min-height:36px}
.so-post-title{font-size:1.05rem;font-weight:700}
.so-post-toggle:hover .so-post-title{color:var(--ds-coral-ink)}
.so-post-meta{font-size:13px;color:var(--ds-muted)}
.so-post-badges{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}
.so-dot{width:9px;height:9px;border-radius:50%;background:var(--ds-coral);flex:0 0 9px}
.so-post-excerpt{margin:6px 0 0;color:#46525C;font-size:14.5px}
.so-post-body{margin:10px 0;font-size:15px;line-height:1.6;overflow-wrap:anywhere}
.so-post-files{margin:8px 0;padding-left:18px}
.so-post-files a{color:var(--ds-coral-ink)}
.so-comments{border-top:1px solid #F1ECE5;margin-top:10px;padding-top:8px}
.so-comments ul{list-style:none;margin:0;padding:0}
.so-comment{padding:10px 12px;border-radius:12px;background:#FAF7F3;margin-bottom:8px}
.so-comment.is-couple{background:#FDF1F3}
.so-comment p{margin:0;font-size:14px;overflow-wrap:anywhere}
.so-comment-meta{font-size:12.5px !important;color:var(--ds-muted);margin-bottom:4px !important}
.so-comment-form{display:flex;gap:8px;align-items:flex-end;margin-top:8px}
.so-comment-form textarea{flex:1;min-height:44px !important}
.so-post-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}

/* -------------------------------------------------------------- dialog */
.so-dialog{position:fixed;inset:0;z-index:100000;display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px 16px;font-family:var(--ds-sans);color:var(--ds-text)}
.so-dialog-backdrop{position:absolute;inset:0;background:rgba(20,33,43,.45)}
.so-dialog-card{position:relative;width:min(680px,100%);max-height:88vh;display:flex;flex-direction:column;background:var(--ds-surface);border-radius:var(--ds-radius-lg);box-shadow:0 24px 64px rgba(20,33,43,.28);overflow:hidden;animation:ds-pop .16s ease}
@keyframes ds-pop{from{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}
.so-dialog-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--ds-line)}
.so-dialog-head h2{font-family:var(--ds-serif);font-size:1.45rem;font-weight:600;margin:0}
.so-dialog-body{padding:4px 20px 16px;overflow:auto}
.so-dialog-foot{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;padding:12px 20px;border-top:1px solid var(--ds-line);background:var(--ds-surface-2)}
.so-dialog-foot .so-inline-msg{width:100%;text-align:right;margin:0}
.so-radio-group{border:0;padding:0;margin:8px 0}
.so-files-pick{border:1px solid var(--ds-line);border-radius:12px;padding:8px 12px;margin:12px 0}
.so-note-full{white-space:normal;line-height:1.6;font-size:15px}

/* ------------------------------------------------------------ tab bar */
.so-tabbar button{display:flex;flex-direction:column;align-items:center;gap:2px;color:#C9D2DA}
.so-tabbar button::before{content:"";width:20px;height:20px;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:20px;mask-size:20px}
.so-tabbar #soTabbarMore::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h16'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M4 7h16M4 12h16M4 17h16'/%3E%3C/svg%3E")}
.so-tabbar button.is-active{background:rgba(239,216,184,.14);color:var(--ds-champagne)}

.so-app-sidebar [data-so-side="dashboard"] .so-ico,.so-tabbar [data-so-side="dashboard"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M3 11l9-7 9 7%27/%3E%3Cpath d=%27M5 10v10h14V10%27/%3E%3Cpath d=%27M10 20v-6h4v6%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M3 11l9-7 9 7%27/%3E%3Cpath d=%27M5 10v10h14V10%27/%3E%3Cpath d=%27M10 20v-6h4v6%27/%3E%3C/svg%3E")}
.so-app-sidebar [data-so-side="crm"] .so-ico,.so-tabbar [data-so-side="crm"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Crect x=%273%27 y=%275%27 width=%2718%27 height=%2716%27 rx=%272%27/%3E%3Cpath d=%27M16 3v4M8 3v4M3 10h18%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Crect x=%273%27 y=%275%27 width=%2718%27 height=%2716%27 rx=%272%27/%3E%3Cpath d=%27M16 3v4M8 3v4M3 10h18%27/%3E%3C/svg%3E")}
.so-app-sidebar [data-so-side="contacts"] .so-ico,.so-tabbar [data-so-side="contacts"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Ccircle cx=%279%27 cy=%278%27 r=%273.2%27/%3E%3Cpath d=%27M3.5 19c.8-3.2 3-5 5.5-5s4.7 1.8 5.5 5%27/%3E%3Ccircle cx=%2717%27 cy=%279%27 r=%272.6%27/%3E%3Cpath d=%27M15.5 14.2c2.4-.3 4.3 1.2 5 4.3%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Ccircle cx=%279%27 cy=%278%27 r=%273.2%27/%3E%3Cpath d=%27M3.5 19c.8-3.2 3-5 5.5-5s4.7 1.8 5.5 5%27/%3E%3Ccircle cx=%2717%27 cy=%279%27 r=%272.6%27/%3E%3Cpath d=%27M15.5 14.2c2.4-.3 4.3 1.2 5 4.3%27/%3E%3C/svg%3E")}
.so-app-sidebar [data-so-side="agenda"] .so-ico,.so-tabbar [data-so-side="agenda"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Crect x=%273%27 y=%275%27 width=%2718%27 height=%2716%27 rx=%272%27/%3E%3Cpath d=%27M16 3v4M8 3v4M3 10h18%27/%3E%3Cpath d=%27M8 14h.01M12 14h.01M16 14h.01M8 17.5h.01M12 17.5h.01%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Crect x=%273%27 y=%275%27 width=%2718%27 height=%2716%27 rx=%272%27/%3E%3Cpath d=%27M16 3v4M8 3v4M3 10h18%27/%3E%3Cpath d=%27M8 14h.01M12 14h.01M16 14h.01M8 17.5h.01M12 17.5h.01%27/%3E%3C/svg%3E")}
.so-app-sidebar [data-so-side="suppliers"] .so-ico,.so-tabbar [data-so-side="suppliers"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M4 10h16l-1.5-5h-13z%27/%3E%3Cpath d=%27M5 10v10h14V10%27/%3E%3Cpath d=%27M10 20v-5h4v5%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M4 10h16l-1.5-5h-13z%27/%3E%3Cpath d=%27M5 10v10h14V10%27/%3E%3Cpath d=%27M10 20v-5h4v5%27/%3E%3C/svg%3E")}
.so-app-sidebar [data-so-side="locations"] .so-ico,.so-tabbar [data-so-side="locations"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z%27/%3E%3Ccircle cx=%2712%27 cy=%279.5%27 r=%272.5%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M12 21s-7-6.2-7-11.5A7 7 0 0 1 19 9.5C19 14.8 12 21 12 21z%27/%3E%3Ccircle cx=%2712%27 cy=%279.5%27 r=%272.5%27/%3E%3C/svg%3E")}
.so-app-sidebar [data-so-side="floral"] .so-ico,.so-tabbar [data-so-side="floral"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Ccircle cx=%2712%27 cy=%279%27 r=%272.2%27/%3E%3Cpath d=%27M12 6.8c0-2.6 3.5-2.6 3.5 0 2.6 0 2.6 3.5 0 3.5.9 2.4-1.9 3.6-3.5 1.9-1.6 1.7-4.4.5-3.5-1.9-2.6 0-2.6-3.5 0-3.5 0-2.6 3.5-2.6 3.5 0z%27/%3E%3Cpath d=%27M12 12v9M12 17c-2-2.2-4.5-2.2-6-1M12 17c2-2.2 4.5-2.2 6-1%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Ccircle cx=%2712%27 cy=%279%27 r=%272.2%27/%3E%3Cpath d=%27M12 6.8c0-2.6 3.5-2.6 3.5 0 2.6 0 2.6 3.5 0 3.5.9 2.4-1.9 3.6-3.5 1.9-1.6 1.7-4.4.5-3.5-1.9-2.6 0-2.6-3.5 0-3.5 0-2.6 3.5-2.6 3.5 0z%27/%3E%3Cpath d=%27M12 12v9M12 17c-2-2.2-4.5-2.2-6-1M12 17c2-2.2 4.5-2.2 6-1%27/%3E%3C/svg%3E")}
.so-app-sidebar [data-so-side="supply"] .so-ico,.so-tabbar [data-so-side="supply"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M3 7.5L12 3l9 4.5v9L12 21l-9-4.5z%27/%3E%3Cpath d=%27M3 7.5l9 4.5 9-4.5M12 12v9%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M3 7.5L12 3l9 4.5v9L12 21l-9-4.5z%27/%3E%3Cpath d=%27M3 7.5l9 4.5 9-4.5M12 12v9%27/%3E%3C/svg%3E")}
.so-app-sidebar [data-so-side="approvals"] .so-ico,.so-tabbar [data-so-side="approvals"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M12 20s-7.5-4.4-7.5-10A4.3 4.3 0 0 1 12 7.4 4.3 4.3 0 0 1 19.5 10c0 5.6-7.5 10-7.5 10z%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M12 20s-7.5-4.4-7.5-10A4.3 4.3 0 0 1 12 7.4 4.3 4.3 0 0 1 19.5 10c0 5.6-7.5 10-7.5 10z%27/%3E%3C/svg%3E")}
.so-app-sidebar [data-so-side="board"] .so-ico,.so-tabbar [data-so-side="board"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M4 5h16v11H9l-5 4z%27/%3E%3Cpath d=%27M8 9h8M8 12h5%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M4 5h16v11H9l-5 4z%27/%3E%3Cpath d=%27M8 9h8M8 12h5%27/%3E%3C/svg%3E")}
.so-app-sidebar [data-so-side="notebook"] .so-ico,.so-tabbar [data-so-side="notebook"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Crect x=%275%27 y=%273%27 width=%2714%27 height=%2718%27 rx=%272%27/%3E%3Cpath d=%27M9 3v18M12 8h4M12 12h4%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Crect x=%275%27 y=%273%27 width=%2714%27 height=%2718%27 rx=%272%27/%3E%3Cpath d=%27M9 3v18M12 8h4M12 12h4%27/%3E%3C/svg%3E")}
.so-app-sidebar [data-so-side="budget"] .so-ico,.so-tabbar [data-so-side="budget"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cellipse cx=%2712%27 cy=%276%27 rx=%277%27 ry=%272.8%27/%3E%3Cpath d=%27M5 6v6c0 1.5 3.1 2.8 7 2.8s7-1.3 7-2.8V6%27/%3E%3Cpath d=%27M5 12v6c0 1.5 3.1 2.8 7 2.8s7-1.3 7-2.8v-6%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cellipse cx=%2712%27 cy=%276%27 rx=%277%27 ry=%272.8%27/%3E%3Cpath d=%27M5 6v6c0 1.5 3.1 2.8 7 2.8s7-1.3 7-2.8V6%27/%3E%3Cpath d=%27M5 12v6c0 1.5 3.1 2.8 7 2.8s7-1.3 7-2.8v-6%27/%3E%3C/svg%3E")}
.so-app-sidebar [data-so-side="attachments"] .so-ico,.so-tabbar [data-so-side="attachments"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z%27/%3E%3Cpath d=%27M14 3v5h5M9 13h6M9 17h6%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z%27/%3E%3Cpath d=%27M14 3v5h5M9 13h6M9 17h6%27/%3E%3C/svg%3E")}
.so-app-sidebar [data-so-side="reports"] .so-ico,.so-tabbar [data-so-side="reports"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M4 20V4M4 20h16%27/%3E%3Cpath d=%27M8 16v-5M12 16V8M16 16v-3%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M4 20V4M4 20h16%27/%3E%3Cpath d=%27M8 16v-5M12 16V8M16 16v-3%27/%3E%3C/svg%3E")}
.so-app-sidebar [data-so-side="settings"] .so-ico,.so-tabbar [data-so-side="settings"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Ccircle cx=%2712%27 cy=%2712%27 r=%273%27/%3E%3Cpath d=%27M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1.1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1.1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3H9a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8V9a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Ccircle cx=%2712%27 cy=%2712%27 r=%273%27/%3E%3Cpath d=%27M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1.1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1.1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3H9a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8V9a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z%27/%3E%3C/svg%3E")}
.so-app-sidebar [data-so-side="checklist"] .so-ico,.so-tabbar [data-so-side="checklist"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M9 6h11M9 12h11M9 18h11%27/%3E%3Cpath d=%27M4 6l1 1 2-2M4 12l1 1 2-2M4 18l1 1 2-2%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M9 6h11M9 12h11M9 18h11%27/%3E%3Cpath d=%27M4 6l1 1 2-2M4 12l1 1 2-2M4 18l1 1 2-2%27/%3E%3C/svg%3E")}
.so-app-sidebar [data-so-side="timeline"] .so-ico,.so-tabbar [data-so-side="timeline"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M12 3v18%27/%3E%3Ccircle cx=%2712%27 cy=%277%27 r=%272%27/%3E%3Ccircle cx=%2712%27 cy=%2717%27 r=%272%27/%3E%3Cpath d=%27M14 7h6M4 17h6%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M12 3v18%27/%3E%3Ccircle cx=%2712%27 cy=%277%27 r=%272%27/%3E%3Ccircle cx=%2712%27 cy=%2717%27 r=%272%27/%3E%3Cpath d=%27M14 7h6M4 17h6%27/%3E%3C/svg%3E")}
.so-app-sidebar [data-so-side="wedding"] .so-ico,.so-tabbar [data-so-side="wedding"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Ccircle cx=%279%27 cy=%2714%27 r=%275%27/%3E%3Ccircle cx=%2715%27 cy=%2714%27 r=%275%27/%3E%3Cpath d=%27M10.5 5l1.5-2 1.5 2-1.5 2z%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Ccircle cx=%279%27 cy=%2714%27 r=%275%27/%3E%3Ccircle cx=%2715%27 cy=%2714%27 r=%275%27/%3E%3Cpath d=%27M10.5 5l1.5-2 1.5 2-1.5 2z%27/%3E%3C/svg%3E")}
.so-app-sidebar [data-so-side="help"] .so-ico,.so-tabbar [data-so-side="help"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Ccircle cx=%2712%27 cy=%2712%27 r=%279%27/%3E%3Cpath d=%27M9.5 9.5a2.5 2.5 0 1 1 3.6 2.2c-.7.4-1.1.9-1.1 1.8M12 17h.01%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Ccircle cx=%2712%27 cy=%2712%27 r=%279%27/%3E%3Cpath d=%27M9.5 9.5a2.5 2.5 0 1 1 3.6 2.2c-.7.4-1.1.9-1.1 1.8M12 17h.01%27/%3E%3C/svg%3E")}
.so-app-sidebar [data-so-side="export"] .so-ico,.so-tabbar [data-so-side="export"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M12 3v12M7 10l5 5 5-5%27/%3E%3Cpath d=%27M5 21h14%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M12 3v12M7 10l5 5 5-5%27/%3E%3Cpath d=%27M5 21h14%27/%3E%3C/svg%3E")}
.so-app-sidebar [data-so-side="comparisons"] .so-ico,.so-tabbar [data-so-side="comparisons"]::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M4 7h10M4 12h16M4 17h7%27/%3E%3Ccircle cx=%2717%27 cy=%277%27 r=%272%27/%3E%3Ccircle cx=%2714%27 cy=%2717%27 r=%272%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M4 7h10M4 12h16M4 17h7%27/%3E%3Ccircle cx=%2717%27 cy=%277%27 r=%272%27/%3E%3Ccircle cx=%2714%27 cy=%2717%27 r=%272%27/%3E%3C/svg%3E")}
[data-ico="cal"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Crect x=%273%27 y=%275%27 width=%2718%27 height=%2716%27 rx=%272%27/%3E%3Cpath d=%27M16 3v4M8 3v4M3 10h18%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Crect x=%273%27 y=%275%27 width=%2718%27 height=%2716%27 rx=%272%27/%3E%3Cpath d=%27M16 3v4M8 3v4M3 10h18%27/%3E%3C/svg%3E")}
[data-ico="heart"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M12 20s-7.5-4.4-7.5-10A4.3 4.3 0 0 1 12 7.4 4.3 4.3 0 0 1 19.5 10c0 5.6-7.5 10-7.5 10z%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M12 20s-7.5-4.4-7.5-10A4.3 4.3 0 0 1 12 7.4 4.3 4.3 0 0 1 19.5 10c0 5.6-7.5 10-7.5 10z%27/%3E%3C/svg%3E")}
[data-ico="people"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Ccircle cx=%279%27 cy=%278%27 r=%273.2%27/%3E%3Cpath d=%27M3.5 19c.8-3.2 3-5 5.5-5s4.7 1.8 5.5 5%27/%3E%3Ccircle cx=%2717%27 cy=%279%27 r=%272.6%27/%3E%3Cpath d=%27M15.5 14.2c2.4-.3 4.3 1.2 5 4.3%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Ccircle cx=%279%27 cy=%278%27 r=%273.2%27/%3E%3Cpath d=%27M3.5 19c.8-3.2 3-5 5.5-5s4.7 1.8 5.5 5%27/%3E%3Ccircle cx=%2717%27 cy=%279%27 r=%272.6%27/%3E%3Cpath d=%27M15.5 14.2c2.4-.3 4.3 1.2 5 4.3%27/%3E%3C/svg%3E")}
[data-ico="clock"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Ccircle cx=%2712%27 cy=%2712%27 r=%278.5%27/%3E%3Cpath d=%27M12 7.5V12l3 2%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Ccircle cx=%2712%27 cy=%2712%27 r=%278.5%27/%3E%3Cpath d=%27M12 7.5V12l3 2%27/%3E%3C/svg%3E")}
[data-ico="coins"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cellipse cx=%2712%27 cy=%276%27 rx=%277%27 ry=%272.8%27/%3E%3Cpath d=%27M5 6v6c0 1.5 3.1 2.8 7 2.8s7-1.3 7-2.8V6%27/%3E%3Cpath d=%27M5 12v6c0 1.5 3.1 2.8 7 2.8s7-1.3 7-2.8v-6%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cellipse cx=%2712%27 cy=%276%27 rx=%277%27 ry=%272.8%27/%3E%3Cpath d=%27M5 6v6c0 1.5 3.1 2.8 7 2.8s7-1.3 7-2.8V6%27/%3E%3Cpath d=%27M5 12v6c0 1.5 3.1 2.8 7 2.8s7-1.3 7-2.8v-6%27/%3E%3C/svg%3E")}
[data-ico="task"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Crect x=%274%27 y=%274%27 width=%2716%27 height=%2716%27 rx=%273%27/%3E%3Cpath d=%27M8.5 12l2.5 2.5 4.5-5%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Crect x=%274%27 y=%274%27 width=%2716%27 height=%2716%27 rx=%273%27/%3E%3Cpath d=%27M8.5 12l2.5 2.5 4.5-5%27/%3E%3C/svg%3E")}
[data-ico="pdf"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z%27/%3E%3Cpath d=%27M14 3v5h5%27/%3E%3Cpath d=%27M8.5 16v-3h1.2a1 1 0 0 1 0 2H8.5M13 16v-3h.8a1.5 1.5 0 0 1 0 3z%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z%27/%3E%3Cpath d=%27M14 3v5h5%27/%3E%3Cpath d=%27M8.5 16v-3h1.2a1 1 0 0 1 0 2H8.5M13 16v-3h.8a1.5 1.5 0 0 1 0 3z%27/%3E%3C/svg%3E")}
[data-ico="sheet"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z%27/%3E%3Cpath d=%27M14 3v5h5M8 12h8M8 15.5h8M11 12v7%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z%27/%3E%3Cpath d=%27M14 3v5h5M8 12h8M8 15.5h8M11 12v7%27/%3E%3C/svg%3E")}
[data-ico="file"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z%27/%3E%3Cpath d=%27M14 3v5h5%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27black%27 stroke-width=%271.7%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z%27/%3E%3Cpath d=%27M14 3v5h5%27/%3E%3C/svg%3E")}

/* -------------------------------------------------------- couple portal */
.so-client-portal{background:var(--ds-bg);color:var(--ds-text);font-family:var(--ds-sans);padding:0;border-radius:0}
.so-client-header{background:var(--ds-surface-2);border-bottom:1px solid var(--ds-line);min-height:72px;padding:12px 28px;position:sticky;top:0;z-index:20;gap:18px}
.so-client-brand .so-brand-fallback{color:#C9A36B;border-color:#EBD9BF;background:#fff}
.so-client-nav{gap:4px}
.so-client-nav button{position:relative;min-height:44px;padding:8px 14px;border-radius:12px;font-size:14.5px;color:#4A4038}
.so-client-nav button:hover{background:#F6EEE6}
.so-client-nav button.is-active{background:var(--ds-blush);color:var(--ds-blush-ink);font-weight:600}
.so-client-nav .so-btn{margin-left:4px}
.so-client-portal #soClientRoot{max-width:1280px;margin:0 auto;padding:24px 28px 48px}
.so-client-portal .so-title,.so-client-portal .so-cl-head h2,.so-client-portal h1{font-family:var(--ds-serif);font-weight:600;color:#2B241E}
.so-client-portal .so-title{font-size:1.45rem;margin-bottom:10px}
.so-client-portal .so-card{border-radius:var(--ds-radius-lg);border-color:#EFE4D8;box-shadow:0 1px 2px rgba(60,40,20,.04),0 10px 24px -18px rgba(60,40,20,.3)}
.so-client-portal .so-badge-count{background:var(--ds-coral)}
.so-client-portal .so-home-card{background:var(--ds-surface);border:1px solid #EFE4D8;border-radius:var(--ds-radius);min-height:96px;padding:16px;text-align:left;box-shadow:var(--ds-shadow)}
.so-client-portal .so-home-card:hover{border-color:#E7CFA9}
.so-client-portal .so-home-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 18px}
.so-client-portal .so-home-card{position:relative;display:flex;flex-direction:row;align-items:center;gap:14px;min-height:88px;cursor:pointer;color:var(--ds-text);font:inherit}
.so-client-portal .so-home-card > .so-ico{width:30px;height:30px;color:var(--ds-champagne-ink);flex:none}
.so-client-portal .so-home-card span{display:flex;flex-direction:column;gap:3px}
.so-client-portal .so-home-card strong{font-size:16px;font-weight:600}
.so-client-portal .so-home-card small{font-size:13px;color:var(--ds-muted)}
.so-client-portal .so-home-card.is-alert{background:#FFF6F5;border-color:#F3C9CF}
.so-client-portal .so-home-card.is-alert > .so-ico{color:var(--ds-coral)}
.so-client-portal .so-home-card.is-alert small{color:var(--ds-coral-ink);font-weight:600}
.so-client-portal .so-home-card .so-badge-count{position:absolute;top:10px;right:12px}
.so-client-portal .so-home-card:focus-visible{outline:none;box-shadow:var(--ds-focus)}
.so-couple-hero{text-align:center;border-radius:var(--ds-radius-lg);margin-bottom:18px}
.so-couple-hero h1{margin:0 0 8px}
.so-couple-hero p{margin:4px auto;max-width:640px;color:#4A4038}
.so-couple-meta{font-weight:600;color:#6B5A44 !important}
.so-home-calm p{margin:0;color:var(--ds-muted);text-align:center;padding:10px}
.so-couple-hero{background:radial-gradient(circle at 15% 20%,rgba(255,255,255,.6),transparent 40%),linear-gradient(120deg,#FBF1E6,#F8E6EA);color:#2B241E;border:1px solid #F1E2D5;padding:40px 24px}
.so-couple-hero h1{font-size:2.4rem}
.so-cl-section{display:flex;flex-direction:column;gap:14px}
.so-cl-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.so-cl-head h2{font-size:2rem;margin:0}
.so-cl-head p{margin:2px 0 0}
.so-cl-next{margin:0 0 16px}
.so-cl-next:empty{display:none}
.so-next-appt{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 22px;border-radius:var(--ds-radius-lg);background:var(--ds-surface);border:1px solid #EFE4D8;box-shadow:var(--ds-shadow)}
.so-next-appt h3{font-family:var(--ds-serif);font-size:1.5rem;font-weight:600;margin:2px 0}
.so-next-side{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.so-eyebrow{margin:0;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ds-champagne-ink);font-weight:700}
.so-client-portal .so-tl.is-couple .so-tl-card{border-color:#EFE4D8}
.so-client-portal .so-delivery-card{border-radius:var(--ds-radius)}
.so-client-portal .so-preview-note{border-radius:12px}

/* ---------------------------------------- showcase: locations/suppliers */
/* Shared by the couple portal and the staff "Anteprima sposi" (so-showcase.js). */
.so-ico{flex:none;vertical-align:-3px}
.so-sc-page{display:grid;grid-template-columns:minmax(260px,400px) minmax(0,1fr);gap:22px;align-items:start}
.so-sc-list{display:flex;flex-direction:column;gap:12px}
.so-sc-li{display:grid;grid-template-columns:132px minmax(0,1fr) 20px;gap:14px;align-items:center;width:100%;text-align:left;padding:10px;border-radius:var(--ds-radius,14px);background:var(--ds-surface,#fff);border:1px solid var(--ds-line,#EAE3DB);box-shadow:var(--ds-shadow);cursor:pointer;color:inherit;font:inherit}
.so-sc-li:hover{border-color:#E7CFA9}
.so-sc-li.is-active{border-color:#E9B9A8;background:#FFF8F4;box-shadow:0 0 0 1px #F2CDBF inset,var(--ds-shadow)}
.so-sc-li:focus-visible{outline:none;box-shadow:var(--ds-focus)}
.so-sc-li-pic{display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:#F4EEE6;color:#B9A58A}
.so-sc-li-pic img{width:100%;height:100%;object-fit:cover;display:block}
.so-sc-li-body{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}
.so-sc-li-body strong{font-family:var(--ds-serif);font-size:1.15rem;font-weight:600;line-height:1.2;color:#2B241E}
.so-sc-li-sub{color:var(--ds-muted,#5F6B75);font-size:13.5px}
.so-sc-li-meta{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;color:#4A4038}
.so-sc-li-meta .so-ico{width:16px;height:16px;color:#9C8A70}
.so-sc-li-chev{color:#B8A893}
.so-sc-badge{display:inline-flex;align-items:center;padding:3px 11px;border-radius:999px;font-size:12.5px;font-weight:600;line-height:1.5;white-space:nowrap}
.so-sc-badge.is-ok{background:#E3F3E9;color:#2F7D57}
.so-sc-badge.is-warn{background:#FBF0D9;color:#8A5E0E}
.so-sc-badge.is-info{background:#E6EEF8;color:#2F5E8C}
.so-sc-badge.is-mute{background:#EFECE8;color:#6A625A}
.so-sc-main{min-width:0}
.so-sc-empty{padding:28px 18px;border:1px dashed #E5D6C3;border-radius:var(--ds-radius,14px);color:var(--ds-muted);text-align:center;background:var(--ds-surface-2,#FFFCF8)}
.so-sc-detail{background:var(--ds-surface,#fff);border:1px solid #EFE4D8;border-radius:var(--ds-radius-lg,18px);padding:18px;box-shadow:var(--ds-shadow);display:flex;flex-direction:column;gap:18px}
.so-sc-detail-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.so-sc-back,.so-sc-fav,.so-sc-act{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:8px 14px;border-radius:12px;border:1px solid var(--ds-line,#EAE3DB);background:var(--ds-surface,#fff);color:#3B332C;font:inherit;font-size:14px;cursor:pointer;text-decoration:none}
.so-sc-back:hover,.so-sc-act:hover{background:#F8F2EB}
.so-sc-fav{background:var(--ds-coral-soft,#FDE9EC);border-color:#F6CBD2;color:#A13048;font-weight:600}
.so-sc-fav .so-ico{color:var(--ds-coral,#F15D70)}
.so-sc-fav.is-on{background:var(--ds-coral,#F15D70);border-color:var(--ds-coral,#F15D70);color:#fff}
.so-sc-fav.is-on .so-ico{color:#fff;fill:currentColor}
.so-sc-fav:disabled{opacity:.7;cursor:default}
.so-sc-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:22px;align-items:start}
.so-sc-gal{display:flex;flex-direction:column;gap:8px}
.so-sc-gal.is-empty{aspect-ratio:16/10;align-items:center;justify-content:center;border-radius:14px;background:#F4EEE6;color:#9C8A70;gap:6px}
.so-sc-gal-main{position:relative;border-radius:14px;overflow:hidden;background:#EFE7DC;aspect-ratio:16/10}
.so-sc-gal-main img{width:100%;height:100%;object-fit:cover;display:block}
.so-sc-gal-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:#2B241E;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.so-sc-gal-nav.is-prev{left:12px}.so-sc-gal-nav.is-next{right:12px}
.so-sc-gal-nav:focus-visible{outline:none;box-shadow:var(--ds-focus)}
.so-sc-gal-count{position:absolute;right:12px;bottom:10px;padding:2px 10px;border-radius:999px;background:rgba(20,20,20,.55);color:#fff;font-size:12.5px}
.so-sc-gal-thumbs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.so-sc-thumb{position:relative;padding:0;border:2px solid transparent;border-radius:8px;overflow:hidden;cursor:pointer;background:#EFE7DC;aspect-ratio:4/3}
.so-sc-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.so-sc-thumb.is-on{border-color:var(--ds-champagne-2,#E4C79F)}
.so-sc-more{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(20,20,20,.45);color:#fff;font-weight:600}
.so-sc-head{display:flex;flex-direction:column;gap:10px;min-width:0}
.so-sc-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.so-sc-title h2{font-family:var(--ds-serif);font-size:2rem;font-weight:600;margin:0;color:#2B241E;line-height:1.1}
.so-sc-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0;color:#3B332C}
.so-sc-line .so-ico{color:#8E7C66}
.so-sc-link{display:inline-flex;align-items:center;gap:6px;color:#A13048;text-decoration:underline;text-underline-offset:3px}
.so-sc-desc{margin:0;color:#4A4038;line-height:1.55}
.so-sc-chips{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 0;padding:0;list-style:none}
.so-sc-chips li{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--ds-line,#EAE3DB);border-radius:12px;background:var(--ds-surface,#fff);font-size:14px;color:#3B332C}
.so-sc-chips .so-ico{color:#8E7C66}
.so-sc-acts{display:flex;flex-wrap:wrap;gap:8px}
.so-sc-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.so-sc-kpi{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid #EFE4D8;border-radius:14px;background:var(--ds-surface-2,#FFFCF8)}
.so-sc-kpi .so-ico{width:26px;height:26px;color:#8E7C66;margin-top:2px}
.so-sc-kpi span{display:block;font-size:13px;color:var(--ds-muted)}
.so-sc-kpi strong{display:block;font-size:15.5px;line-height:1.35;color:#2B241E}
.so-sc-cols{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px}
.so-sc-box{border:1px solid #EFE4D8;border-radius:14px;padding:16px;background:var(--ds-surface,#fff)}
.so-sc-box h3{font-family:var(--ds-serif);font-size:1.3rem;font-weight:600;margin:0 0 10px;color:#2B241E}
.so-sc-irow{display:grid;grid-template-columns:20px minmax(90px,140px) minmax(0,1fr);gap:10px;align-items:start;padding:7px 0;font-size:14.5px;border-top:1px solid #F5EEE6}
.so-sc-irow:first-of-type{border-top:0}
.so-sc-irow .so-ico{color:#8E7C66;margin-top:1px}
.so-sc-irow span:nth-child(2){color:var(--ds-muted)}
.so-sc-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-top:1px solid #F5EEE6;font-size:14.5px}
.so-sc-row:first-of-type{border-top:0}
.so-sc-hidden{display:inline-flex;align-items:center;gap:6px;color:#C0364F;font-weight:600}
.so-sc-note{display:flex;gap:10px;align-items:flex-start;margin:0 0 8px;padding:10px 12px;border-radius:12px;background:#FDF6E7;border:1px solid #F1E2BF;color:#6B5320;font-size:13.5px}
.so-sc-note .so-ico{color:#9A6A12;margin-top:1px}
.so-sc-back{display:none}
@media (max-width:1100px){
  .so-sc-hero{grid-template-columns:1fr}
}
@media (max-width:860px){
  .so-sc-page{grid-template-columns:1fr}
  .so-sc-page .so-sc-main{display:none}
  .so-sc-page.is-detail .so-sc-main{display:block}
  .so-sc-page.is-detail .so-sc-list{display:none}
  .so-sc-back{display:inline-flex}
  .so-sc-cols{grid-template-columns:1fr}
  .so-sc-li{grid-template-columns:104px minmax(0,1fr) 16px}
  .so-sc-title h2{font-size:1.6rem}
  .so-sc-detail{padding:14px}
  .so-sc-gal-thumbs{grid-template-columns:repeat(4,minmax(0,1fr))}
  .so-sc-gal-thumbs .so-sc-thumb:nth-child(n+5){display:none}
}

/* ------------------------------------------- staff archive + editor (M05/M06) */
.so-arc[hidden],#soLocForm[hidden],#soSupForm[hidden]{display:none !important}
.so-arc{display:flex;flex-direction:column;gap:16px}
.so-arc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.so-arc-title{font-family:var(--ds-serif);font-size:2rem;font-weight:600;margin:0;color:var(--ds-text)}
.so-arc-lead{margin:2px 0 0;color:var(--ds-muted)}
.so-arc-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.so-arc-tools .so-input,.so-arc-tools .so-select{min-height:42px}
.so-arc-search{position:relative;display:block}
.so-arc-search .so-input{width:min(280px,100%)}
.so-arc-search .so-sr-icon{display:none}
.so-arc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(272px,1fr));gap:16px}
.so-arc-card{display:flex;flex-direction:column;background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-radius);box-shadow:var(--ds-shadow);overflow:visible;position:relative}
.so-arc-card.is-archived{opacity:.75}
.so-arc-pic{aspect-ratio:16/10;background:#F4EEE6;border-radius:var(--ds-radius) var(--ds-radius) 0 0;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#A8957A}
.so-arc-pic img{width:100%;height:100%;object-fit:cover;display:block}
.so-arc-pic span{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:13px}
.so-arc-body{padding:14px 16px 6px;display:flex;flex-direction:column;gap:7px;flex:1}
.so-arc-name{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.so-arc-name h3{font-family:var(--ds-serif);font-size:1.3rem;font-weight:600;margin:0;line-height:1.2}
.so-arc-meta{display:flex;align-items:center;gap:7px;font-size:14px;color:#3F4A54;flex-wrap:wrap}
.so-arc-meta .so-ico{width:16px;height:16px;color:#8E7C66}
.so-arc-meta i{width:10px}
.so-arc-actions{display:flex;gap:8px;padding:10px 16px 14px;flex-wrap:wrap;align-items:center}
.so-arc-actions .so-btn{display:inline-flex;align-items:center;gap:6px;min-height:38px}
.so-arc-more{position:relative;margin-left:auto}
.so-arc-more summary{list-style:none;min-width:40px;justify-content:center}
.so-arc-more summary::-webkit-details-marker{display:none}
.so-arc-menu{position:absolute;right:0;bottom:calc(100% + 6px);z-index:30;display:flex;flex-direction:column;gap:6px;min-width:220px;padding:8px;background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:12px;box-shadow:0 12px 32px rgba(25,35,44,.18)}
.so-arc-menu .so-btn{justify-content:flex-start;width:100%}
.so-arc-attrs{border:1px solid var(--ds-line);border-radius:var(--ds-radius);padding:10px 14px;background:var(--ds-surface)}
.so-arc-attrs summary{cursor:pointer;font-weight:600}
.so-btn-champagne{background:var(--ds-champagne) !important;border-color:var(--ds-champagne-2) !important;color:#4A3517 !important}
.so-btn-champagne:hover{background:var(--ds-champagne-2) !important}
.so-ed{display:flex;flex-direction:column;gap:16px}
.so-ed-bar{position:sticky;top:0;z-index:15;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;background:rgba(250,248,245,.94);backdrop-filter:blur(6px);border:1px solid var(--ds-line);border-radius:var(--ds-radius)}
.so-ed-bar .so-btn{display:inline-flex;align-items:center;gap:6px;min-height:40px}
.so-ed-title{display:flex;align-items:center;gap:10px;flex:1 1 220px;min-width:0}
.so-ed-title h2{font-family:var(--ds-serif);font-size:1.55rem;font-weight:600;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.so-ed-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.so-ed-status{font-size:13.5px;color:var(--ds-ok);min-height:1em}
.so-ed-status[data-ok="0"]{color:var(--ds-err)}
.so-ed-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
.so-ed-main{display:flex;flex-direction:column;gap:16px;min-width:0}
.so-ed-aside{position:sticky;top:84px;display:flex;flex-direction:column;gap:16px}
.so-ed-card{background:var(--ds-surface);border:1px solid var(--ds-line);border-radius:var(--ds-radius);padding:16px 18px;box-shadow:var(--ds-shadow)}
.so-ed-card > h3,.so-ph h3{font-size:1rem;font-weight:700;margin:0 0 12px;color:var(--ds-text)}
.so-ed-card .so-field{margin-bottom:10px}
.so-ed-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.so-ed-sub{font-size:.92rem;margin:10px 0 8px;color:var(--ds-text)}
.so-ed-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:2px 10px}
.so-ed-checks label{min-height:36px}
.so-ed-checks input,.so-share input{accent-color:var(--ds-coral)}
.so-ed-more{margin-top:8px}
.so-ed-more summary{cursor:pointer;color:var(--ds-champagne-ink);font-weight:600;font-size:14px;padding:4px 0}
.so-output{display:flex;align-items:center;background:#F6F2EC !important;color:var(--ds-text)}
.so-ed [aria-invalid="true"]{border-color:var(--ds-err) !important;box-shadow:0 0 0 3px rgba(180,35,53,.15)}
.so-ph{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:18px}
.so-ph-cover{position:relative;aspect-ratio:4/3;border-radius:12px;overflow:hidden;background:#F4EEE6;display:flex;align-items:center;justify-content:center;color:#A8957A}
.so-ph-cover img{width:100%;height:100%;object-fit:cover;display:block}
.so-ph-empty{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:13px}
.so-ph-x{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:50%;border:0;background:rgba(255,255,255,.95);font-size:18px;line-height:1;cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.2)}
.so-ph-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin-bottom:10px}
.so-ph-grid:empty{display:none}
.so-ph-item{position:relative;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:#EFE7DC;border:2px solid transparent}
.so-ph-item.is-cover{border-color:var(--ds-champagne-2)}
.so-ph-item img{width:100%;height:100%;object-fit:cover;display:block}
.so-ph-flag{position:absolute;left:6px;top:6px;padding:1px 8px;border-radius:999px;background:var(--ds-champagne);color:#4A3517;font-size:11.5px;font-weight:700}
.so-ph-tools{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:center;gap:4px;padding:5px;background:linear-gradient(transparent,rgba(0,0,0,.55))}
.so-ph-tools button{width:28px;height:28px;border:0;border-radius:8px;background:rgba(255,255,255,.95);cursor:pointer;font-size:14px;line-height:1;color:#2B241E}
.so-ph-tools button:disabled{opacity:.35;cursor:default}
.so-ph-tools button:focus-visible{outline:none;box-shadow:var(--ds-focus)}
.so-ph-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:104px;padding:14px;border:1.5px dashed #D9C7AE;border-radius:12px;background:#FFFCF8;color:var(--ds-muted);text-align:center;cursor:pointer;font-size:14px}
.so-ph-drop.is-over{border-color:var(--ds-coral);background:var(--ds-coral-soft)}
.so-ph-drop.is-disabled{opacity:.55;cursor:not-allowed}
.so-ph-drop input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.so-ph-drop:focus-within{box-shadow:var(--ds-focus)}
.so-ph-prog:empty{display:none}
.so-ph-prog{margin-top:8px}
.so-share h3{font-size:1.05rem}
.so-share-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column}
.so-share-list li{border-top:1px solid #F1ECE5}
.so-share-list label{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 2px;cursor:pointer;font-size:14.5px}
.so-share-list label small{display:block;font-size:12px;color:var(--ds-muted)}
.so-share-list label small.is-internal{color:var(--ds-coral-ink)}
.so-switch{position:relative;display:inline-flex;flex:none}
.so-switch input{position:absolute;opacity:0;width:44px;height:26px;margin:0;cursor:pointer}
.so-switch span{width:44px;height:26px;border-radius:999px;background:#D9D3CB;transition:background .15s ease;position:relative}
.so-switch span::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s ease}
.so-switch input:checked + span{background:#2F5E8C}
.so-switch input:checked + span::after{transform:translateX(18px)}
.so-switch input:disabled + span{opacity:.6}
.so-switch input:focus-visible + span{box-shadow:var(--ds-focus)}
.so-share-never{display:flex;gap:8px;align-items:flex-start;margin:10px 0 0;font-size:13px;color:var(--ds-muted)}
.so-modal.is-wide .so-modal-card{max-width:1120px}
.so-preview-pane{padding:2px}
.so-preview-pane.so-client-portal{background:var(--ds-bg);border-radius:14px;padding:12px}
.so-preview-chip{display:inline-block;margin:0 0 12px;padding:6px 14px;border-radius:999px;background:#E3F3E9;color:#2F7D57;font-weight:600;font-size:14px}
.so-preview-chip.is-staff{background:var(--ds-champagne);color:#4A3517}
.so-int-tag{font-style:normal;font-size:11.5px;padding:1px 7px;border-radius:999px;background:var(--ds-coral-soft);color:var(--ds-coral-ink);margin-left:6px}
.so-int-box{border-color:#F6CBD2;background:#FFFAFA}
@media (max-width:1180px){
  .so-ed-grid{grid-template-columns:minmax(0,1fr)}
  .so-ed-aside{position:static}
}
@media (max-width:720px){
  .so-ed-two,.so-ph{grid-template-columns:1fr}
  .so-ed-bar{top:0;border-radius:0;margin:0 -16px;padding:10px 16px}
  .so-ed-title{flex-basis:100%;flex-wrap:wrap}
  .so-ed-title h2{white-space:normal;font-size:1.35rem}
  .so-ed-actions{width:100%}
  .so-ed-actions .so-btn{flex:1 1 calc(50% - 8px);justify-content:center}
  .so-ed-status{flex-basis:100%;order:5}
  .so-arc-title{font-size:1.6rem}
  .so-arc-tools{width:100%}
  .so-arc-tools > *{flex:1 1 100%}
  .so-arc-search .so-input{width:100%}
  .so-arc-grid{grid-template-columns:1fr}
}

/* ------------------------------------------------------- responsive */
@media (max-width:1280px){
  .so-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .so-home-cols,.so-home-cols.is-secondary{grid-template-columns:1fr 1fr}
}
@media (max-width:1024px){
  .so-app-shell{grid-template-columns:minmax(0,1fr)}
  .so-app-sidebar{position:fixed;top:0;left:0;height:100vh;width:min(280px,86vw);z-index:60;transition:transform .2s ease;box-shadow:12px 0 32px rgba(0,0,0,.25)}
  .so-wrap.is-nav-open .so-app-sidebar{transform:none}
  .so-app-topbar{padding:10px 16px;min-height:60px}
  .so-app-content{padding:18px 16px 96px}
  .so-tabbar{background:var(--ds-navy)}
}
@media (max-width:720px){
  .so-kpis{grid-template-columns:1fr 1fr;gap:10px}
  .so-kpi{min-height:104px;padding:14px}
  .so-kpi-value{font-size:1.45rem}
  .so-home-cols,.so-home-cols.is-secondary{grid-template-columns:1fr}
  .so-home-head h1{font-size:1.75rem}
  .so-home-when{text-align:left}
  .so-title-serif{font-size:1.45rem}
  .so-tl{padding-left:22px}
  .so-tl-dot{left:-17px}
  .so-tl::before{left:5px}
  .so-tl-now span{left:-22px}
  .so-tl-card{flex-wrap:wrap;gap:10px}
  .so-tl-side{flex-direction:row;align-items:center;justify-content:space-between;width:100%}
  .so-toolbar .so-input{min-width:0;width:100%}
  .so-toolbar > label{flex:1 1 100%}
  .so-form-row{grid-template-columns:1fr}
  .so-dialog{padding:0;align-items:stretch}
  .so-dialog-card{width:100%;max-height:100vh;border-radius:0}
  .so-post-badges{margin-left:0}
  .so-comment-form{flex-direction:column;align-items:stretch}
  .so-client-header{padding:10px 14px;min-height:60px}
  .so-client-portal #soClientRoot{padding:16px 14px 40px}
  .so-cl-head h2{font-size:1.6rem}
  .so-client-portal .so-home-grid{grid-template-columns:1fr 1fr;gap:10px}
  .so-client-portal .so-home-card{flex-direction:column;align-items:flex-start;gap:8px;min-height:104px;padding:14px}
  .so-couple-hero{padding:28px 16px}
  .so-couple-hero h1{font-size:1.9rem}
  .so-client-portal.is-nav-open .so-client-nav{background:var(--ds-surface-2);border-bottom:1px solid var(--ds-line);box-shadow:0 12px 24px rgba(0,0,0,.08)}
}
@media (max-width:420px){
  .so-kpis{grid-template-columns:1fr}
  .so-notes-grid{grid-template-columns:1fr}
}
.so-app-shell,.so-client-portal{overflow-x:clip}
.so-app-content img,.so-client-portal img{max-width:100%;height:auto}

/* ------------------------------------------------------- motion + print */
@media (prefers-reduced-motion: reduce){
  .so-skeleton,.so-upbar-fill,.so-dialog-card,.so-kpi,.so-app-sidebar{animation:none !important;transition:none !important}
}
.so-reduce-motion .so-skeleton,.so-reduce-motion .so-dialog-card{animation:none}

/* ------------------------------------------------- optional dark theme */
.so-wrap[data-theme="dark"] .so-app-shell,
.so-wrap[data-theme="dark"] .so-dialog,
.so-client-portal[data-theme="dark"]{
  --ds-bg:#12171D; --ds-surface:#1A222B; --ds-surface-2:#161D25; --ds-text:#EEF2F6; --ds-muted:#B4BFCA; --ds-line:#2A3541;
  --ds-coral-soft:rgba(241,93,112,.16); --ds-ok-soft:rgba(47,125,87,.2); --ds-warn-soft:rgba(154,106,18,.22); --ds-info-soft:rgba(47,94,140,.25); --ds-err-soft:rgba(180,35,53,.22);
  --ds-ok:#7FD3A6; --ds-warn:#F0C674; --ds-info:#9BC2EC; --ds-err:#FF9AA6; --ds-coral-ink:#FF8C9B; --ds-champagne-ink:#E4C79F;
}
.so-client-portal[data-theme="dark"]{--ds-blush:rgba(241,93,112,.16);--ds-blush-ink:#FFB3BE}
@media (prefers-color-scheme: dark){
  .so-wrap[data-theme="auto"] .so-app-shell,
  .so-client-portal[data-theme="auto"]{
    --ds-bg:#12171D; --ds-surface:#1A222B; --ds-surface-2:#161D25; --ds-text:#EEF2F6; --ds-muted:#B4BFCA; --ds-line:#2A3541;
    --ds-coral-soft:rgba(241,93,112,.16); --ds-ok-soft:rgba(47,125,87,.2); --ds-warn-soft:rgba(154,106,18,.22); --ds-info-soft:rgba(47,94,140,.25); --ds-err-soft:rgba(180,35,53,.22);
    --ds-ok:#7FD3A6; --ds-warn:#F0C674; --ds-info:#9BC2EC; --ds-err:#FF9AA6; --ds-coral-ink:#FF8C9B; --ds-champagne-ink:#E4C79F;
  }
  .so-client-portal[data-theme="auto"]{--ds-blush:rgba(241,93,112,.16);--ds-blush-ink:#FFB3BE}
}
.so-wrap[data-theme="dark"] .so-kpi:not(.is-ivory),
.so-client-portal[data-theme="dark"] .so-note{filter:saturate(.85)}
.so-wrap[data-theme="dark"] .so-kpi.is-sage{background:#1E3027}.so-wrap[data-theme="dark"] .so-kpi.is-rose{background:#3A2128}.so-wrap[data-theme="dark"] .so-kpi.is-sky{background:#1C2A3A}.so-wrap[data-theme="dark"] .so-kpi.is-champagne{background:#352B1C}
.so-wrap[data-theme="dark"] .so-kpi-label{color:var(--ds-muted)}
.so-wrap[data-theme="dark"] .so-note,.so-client-portal[data-theme="dark"] .so-note{--note:#1F2730;--note-line:#2E3A46}
.so-wrap[data-theme="dark"] .so-note-body,.so-client-portal[data-theme="dark"] .so-note-body{color:var(--ds-text)}
.so-wrap[data-theme="dark"] .so-comment{background:#202A34}.so-wrap[data-theme="dark"] .so-comment.is-couple{background:#2E2229}
.so-wrap[data-theme="dark"] .so-tl-item.is-wedding .so-tl-card,.so-client-portal[data-theme="dark"] .so-tl-item.is-wedding .so-tl-card{background:#2A2226}
.so-wrap[data-theme="dark"] .so-quick-item{background:#1E2731}
.so-wrap[data-theme="dark"] .so-mini-date{background:var(--ds-surface)}
.so-client-portal[data-theme="dark"] .so-client-nav button{color:var(--ds-text)}
.so-client-portal[data-theme="dark"] .so-title,.so-client-portal[data-theme="dark"] .so-cl-head h2,.so-client-portal[data-theme="dark"] .so-next-appt h3{color:var(--ds-text)}
.so-client-portal[data-theme="dark"] .so-couple-hero{background:#2A2226;color:var(--ds-text);border-color:#3A2E33}

/* ------------------------------------------------------------- print */
@media print{
  .so-app-sidebar,.so-app-topbar,.so-tabbar,.so-client-header{display:none !important}
  .so-app-shell{display:block}
  .so-card,.so-panel-card,.so-tl-card,.so-note,.so-post{box-shadow:none !important;break-inside:avoid}
}

/* ------------------------------------------- host theme integration */
body.so-stedif-active .is-layout-constrained > .so-wrap[data-so-app],
body.so-stedif-active .entry-content > .so-wrap[data-so-app],
body.so-stedif-active .is-layout-constrained > .so-wrap.so-client-portal{max-width:none !important;width:100%;margin-left:0;margin-right:0}
.so-couple-access-card{margin-top:20px}
.so-couple-access-card > h2,.so-couple-access-card > .so-title{font-family:var(--ds-serif);font-size:1.4rem}
body.so-stedif-active:has(.so-wrap[data-theme="light"]),
body.so-stedif-active:has(.so-wrap[data-theme="light"]) .wp-site-blocks,
body.so-stedif-active:has(.so-wrap[data-theme="light"]) main,
body.so-stedif-active:has(.so-wrap[data-theme="light"]) .entry-content{background:#FAF8F5 !important;color:#19232C}
.so-app-shell .so-event-bar .so-btn-primary,.so-app-shell .so-btn-primary *{color:#fff}
@media (min-width:1025px){
  .so-app-shell{background:linear-gradient(90deg,var(--ds-navy) 0 236px,var(--ds-bg) 236px)}
}
.so-pwa-install-float{left:auto !important;right:16px;background:var(--ds-navy,#14212B) !important;border-color:var(--ds-champagne,#EFD8B8) !important}
@media (max-width:1024px){.so-pwa-install-float{bottom:calc(104px + env(safe-area-inset-bottom)) !important}}
body.so-stedif-active:has(.so-client-portal:not([data-theme="dark"])),
body.so-stedif-active:has(.so-client-portal:not([data-theme="dark"])) .wp-site-blocks,
body.so-stedif-active:has(.so-client-portal:not([data-theme="dark"])) main,
body.so-stedif-active:has(.so-client-portal:not([data-theme="dark"])) .entry-content{background:#FBF7F2 !important;color:#2B241E}
.so-client-header{flex-wrap:nowrap}
.so-client-header .so-client-brand{order:1}
.so-client-header #soClientTop{order:2;flex:1;min-width:0;display:flex;align-items:center;gap:16px}
.so-client-header .so-nav-toggle{order:3}
.so-client-header .so-theme{order:4;display:flex;gap:4px;flex:0 0 auto}
.so-client-header .so-theme .so-chip{min-height:30px;padding:3px 10px;font-size:12px}
.so-client-id{display:flex;flex-direction:column;min-width:0;padding-right:16px;border-right:1px solid var(--ds-line);flex:0 0 auto}
.so-client-id strong{font-family:var(--ds-serif);font-size:1.4rem;font-weight:600;line-height:1.1;color:#2B241E;white-space:nowrap}
.so-client-id span{font-size:12.5px;color:var(--ds-muted);white-space:nowrap}
.so-client-header .so-client-nav{flex:1;min-width:0}
.so-client-portal .so-client-menu{position:relative;flex:0 0 auto}
.so-client-portal .so-client-menu summary{min-height:40px;display:flex;align-items:center;padding:0 12px;border:1px solid var(--ds-line);border-radius:12px;cursor:pointer;list-style:none;background:var(--ds-surface)}
.so-client-portal .so-client-menu[open] > :not(summary){position:relative}
.so-client-portal .so-couple-brand{display:none}
@media (max-width:1024px){
  .so-client-header{flex-wrap:wrap}
  .so-client-header #soClientTop{order:5;flex:1 1 100%}
  .so-client-id{border-right:0;padding-right:0}
}
@media (max-width:720px){
  .so-client-header .so-theme{order:6}
  .so-client-id strong{font-size:1.15rem}
}
.so-client-portal[data-theme="dark"] .so-client-id strong{color:var(--ds-text)}
.so-client-header .so-client-nav{flex-wrap:wrap;overflow:visible;row-gap:4px}
.so-note-foot{flex-wrap:wrap;row-gap:8px}
.so-note-foot .so-hint{flex:1 1 auto}
.so-note-actions{margin-left:auto}
@media (max-width:720px){
  .so-app-topbar{display:flex;flex-wrap:wrap;gap:8px;padding:8px 12px;min-height:0}
  .so-app-topbar .so-nav-toggle{order:0}
  .so-app-topbar #soContextHelp,.so-app-topbar #soBell,.so-app-topbar .so-profile{order:1}
  .so-app-topbar #soBell{margin-left:auto}
  .so-app-topbar .so-search{order:5;flex:1 1 100%;max-width:none}
  .so-app-topbar .so-btn,.so-app-topbar .so-profile summary{min-height:40px;padding:6px 10px;font-size:13px}
  .so-event-bar{padding:10px 12px}
  .so-event-bar .so-select{max-width:none;width:100%}
}
