:root{--ink:#171423;--muted:#645a7d;--violet:#7619df;--lavender:#f3eaff;--line:#ded9eb;--cloud:#087da9;--cloud-bg:#eaf6ff;--vault-bg:#f2eaff;--radius:12px;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#fff;font-size:16px;line-height:1.5}
*{box-sizing:border-box}body{margin:0}a{color:var(--violet);text-decoration:none}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a,select{touch-action:manipulation}button{cursor:pointer}a:hover{text-decoration:underline}button:hover{filter:brightness(.96)}:focus-visible{outline:3px solid #4929b3;outline-offset:4px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:absolute;top:-80px;left:16px;background:white;padding:12px;z-index:3}.skip:focus{top:8px}.header{height:80px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 48px;gap:32px}.brand{display:flex;align-items:center;gap:14px;font-size:26px;font-weight:750;letter-spacing:-1px;color:var(--ink);white-space:nowrap}.brand-mark{position:relative;width:36px;height:36px;display:block}.brand-mark:before,.brand-mark:after{content:"";position:absolute;width:25px;height:25px;border-radius:7px;background:#c99bf6;left:0;top:0}.brand-mark:after{background:var(--violet);opacity:.94;left:11px;top:11px}nav{display:flex;gap:16px;align-items:center;flex:1;height:100%}nav a{font-size:17px;font-weight:600;color:#453a63;padding:10px 18px;border-radius:var(--radius)}nav a[aria-current]{background:var(--lavender);color:var(--violet)}.nav-compare{margin-left:auto}.nav-compare span{font-size:24px;vertical-align:-2px;margin-right:8px}.menu-toggle{display:none}main{max-width:1376px;margin:auto;padding:42px 48px 80px}h1,h2,h3,p{margin:0}h1{font-size:34px;line-height:1.2;letter-spacing:-.8px;font-weight:750}h1:focus,h2:focus{outline:none}.caption{color:var(--muted);margin-top:9px;font-size:18px}.page-heading{margin-bottom:28px}.suggestion{display:flex;align-items:center;justify-content:space-between;gap:24px;background:linear-gradient(110deg,#f8f3ff,#f3eaff);border:1px solid #eee2fb;border-radius:16px;padding:20px 24px;margin-bottom:28px;max-width:800px}.eyebrow{color:var(--muted);font-size:15px;margin-bottom:4px}.pair{font-size:22px;font-weight:700}.pair span{color:var(--muted);padding:0 5px}.primary,.secondary{display:inline-flex;justify-content:center;align-items:center;gap:10px;min-height:46px;padding:10px 22px;border-radius:10px;font-weight:650;white-space:nowrap}.primary{color:#fff;background:var(--violet)}.primary:hover{background:#6512c4;text-decoration:none}.primary span{font-size:24px;line-height:1}.secondary{background:white;border:1px solid var(--line);color:var(--violet)}.filters{display:flex;align-items:center;gap:16px;margin-bottom:24px}.search-field{display:flex;align-items:center;position:relative;width:360px}.search-field span{position:absolute;left:14px;color:var(--muted);font-size:28px;pointer-events:none}input,select{min-height:46px;background:white;border:1px solid #8b7e9b;border-radius:10px;color:var(--ink)}input{padding:10px 14px 10px 44px;width:100%;min-width:0}input::placeholder{color:var(--muted);opacity:1}select{padding:10px 38px 10px 14px;max-width:100%}.text-button{border:0;background:transparent;color:var(--violet);min-height:44px;padding:8px}.inventory-heading{display:flex;gap:12px;align-items:baseline;margin-bottom:16px}h2{font-size:20px}#count{color:var(--muted)}#inventory{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.inventory-row{position:relative;display:grid;grid-template-columns:32% 1fr;align-items:center;padding:20px 24px;min-height:104px;border-bottom:1px solid var(--line);gap:24px}.inventory-row:last-child{border-bottom:0}.overlap{background:var(--lavender)}.overlap:before{content:"";position:absolute;left:15px;top:32px;height:36px;width:5px;border-radius:8px;background:var(--violet)}.identity{display:flex;align-items:center;gap:22px;padding-left:12px}.service-icon{width:38px;height:38px;flex:none}.cloud{color:var(--cloud)}.vault{color:var(--violet)}.music{color:#bf5100}.note{color:#178043}h3{font-size:21px;font-weight:700;line-height:1.3}.identity>div{display:flex;flex-wrap:wrap;align-items:center;gap:3px 14px}.category{width:100%;color:var(--muted);font-size:15px}.badge{font-size:13px;font-weight:650;color:#6412bf;background:#e7d4ff;padding:2px 10px;border-radius:20px;margin-top:3px}.features{margin:0}.empty{border:1px dashed var(--line);border-radius:var(--radius);text-align:center;padding:48px 20px}.empty p{margin:8px 0 20px;color:var(--muted)}.back{display:inline-block;margin-bottom:24px;font-weight:650;min-height:32px}#comparison{max-width:1180px;margin:auto}#comparison .page-heading{margin-bottom:32px}table{width:100%;border-spacing:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;table-layout:fixed;text-align:left}th,td{padding:22px 24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:middle}thead th{background:#f7f5fa;font-size:19px}th:first-child{width:24%}.type-col{width:15%}tr>*:last-child{border-right:0}tbody tr:last-child>*{border-bottom:0}tbody th{font-size:18px}.cloud-cell{background:var(--cloud-bg)}.vault-cell{background:var(--vault-bg)}thead .cloud-cell,thead .vault-cell{background:#f7f5fa}.unique{font-weight:650}.service-heading{display:flex;align-items:center;gap:14px}.service-heading svg{width:32px;height:32px}
@media(max-width:800px){.header{padding:0 24px;gap:18px}.brand{font-size:23px}nav{gap:0}nav a{padding:10px;font-size:15px}main{padding:32px 24px 64px}.inventory-row{grid-template-columns:38% 1fr;padding:20px 18px;gap:18px}.identity{gap:12px}th,td{padding:16px}}
@media(max-width:600px){.header{height:72px;padding:0 20px;justify-content:space-between;position:relative}.brand{font-size:24px}.brand-mark{width:32px;height:32px}.brand-mark:before,.brand-mark:after{width:23px;height:23px}.brand-mark:after{left:9px;top:9px}.menu-toggle{display:block;background:white;border:1px solid var(--line);border-radius:8px;color:var(--violet);width:44px;height:44px;font-size:26px}nav{display:none;position:absolute;top:71px;left:0;right:0;height:auto;padding:12px 20px;background:white;border-bottom:1px solid var(--line);z-index:2;box-shadow:0 12px 20px #21113810}nav.open{display:flex;flex-direction:column;align-items:stretch}nav a{padding:12px 14px;font-size:16px}.nav-compare{margin-left:0}main{padding:28px 20px 56px}main:has(>#overview:not([hidden])){padding-top:20px}h1{font-size:28px;letter-spacing:-.6px}.caption{font-size:16px;margin-top:8px}#overview .page-heading{margin-bottom:16px}#overview .suggestion{padding:12px;gap:12px;flex-wrap:wrap;margin-bottom:16px}.pair{font-size:19px}.eyebrow{font-size:14px}.primary{min-height:44px;padding:9px 18px}#overview .filters{display:grid;grid-template-columns:minmax(0,1fr) 166px;gap:8px;margin-bottom:16px}.search-field{width:100%;min-width:0}.search-field span{left:10px;font-size:22px}.search-field input{min-width:0;font-size:15px;padding-left:32px;padding-right:8px}select{width:100%;font-size:15px;padding-left:10px;padding-right:28px}.text-button{grid-column:1/-1;justify-self:start;padding-left:0}.inventory-heading{gap:10px;margin-bottom:12px}h2{font-size:19px}#count{font-size:15px}.inventory-row{display:block;padding:10px 20px;min-height:0}.identity{position:relative;padding:0 0 0 42px;gap:16px;align-items:flex-start}.identity>.service-icon{position:absolute;top:2px;left:0;margin-top:0}.identity>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 10px;width:100%}.identity h3{font-size:20px;width:100%}.identity .category{width:auto;margin-top:0}.badge{display:inline-block;margin-top:0}.overlap:before{left:8px;top:17px;height:28px;width:4px}.service-icon{width:30px;height:30px;margin-top:2px}.features{padding:8px 0 0;font-size:16px}.back{margin-bottom:20px}#comparison .page-heading{margin-bottom:24px}#comparison h1{font-size:27px}.type-col{display:none}th,td{padding:14px 9px;font-size:15px;overflow-wrap:break-word}thead th{font-size:14px}tbody th{font-size:15px}th:first-child{width:30%}.service-heading{flex-direction:column;align-items:flex-start;gap:6px}.service-heading svg{width:28px;height:28px}table{border-radius:10px}}


@media(max-width:360px){#overview .filters{grid-template-columns:1fr}}

/* One named action carries its shared context at every width. */
#overview .suggestion .primary{flex-direction:column;align-items:flex-start;gap:4px;white-space:normal;max-width:100%}
#overview .suggestion-action-label{display:flex;align-items:center;flex-wrap:wrap;gap:0 8px;font-size:16px;line-height:1.5}
#overview .suggestion-shared{font-size:14px;line-height:1.5;font-weight:400;color:#fff}
@media(max-width:600px){#overview .suggestion{background:none;border:0;border-radius:0;padding:0;align-items:stretch}#overview .suggestion .primary{width:100%;min-height:44px;padding:9px 18px}#overview .suggestion-icon{display:none}}

/* Keep the fixed pair command with the inventory, after filters. */
#overview .inventory-intro{margin-bottom:16px}
#overview .inventory-intro>.suggestion{background:none;border:0;border-radius:0;padding:0;margin-bottom:0;max-width:none}
@media(min-width:601px){#overview .inventory-intro{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}#overview .inventory-intro>.inventory-heading{margin-bottom:0}#overview .inventory-intro>.suggestion{margin-left:auto;flex-wrap:wrap}}

/* One desktop working surface; groups wrap at their intrinsic space needs. */
@media(min-width:801px){
#overview .inventory-panel{border:1px solid var(--line);border-radius:var(--radius);background:#fff}
#overview .inventory-workspace{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;padding:20px 24px;background:#f7f5fa;border-bottom:1px solid var(--line);border-radius:calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0}
#overview .inventory-intro{display:contents}
#overview .inventory-heading{order:-1;flex:0 1 auto;flex-wrap:wrap;gap:0 12px;margin-bottom:0}
#overview .filters{flex:1 1 360px;min-width:min(100%,340px);flex-wrap:wrap;gap:8px 12px;margin-bottom:0}
#overview .search-field{flex:1 1 140px;width:auto;min-width:140px}
#overview .inventory-intro>.suggestion{flex:0 1 auto;min-width:0;margin-left:0;justify-content:flex-start}
#overview .inventory-panel>#inventory{border:0;border-radius:0}
#overview .inventory-panel>#inventory>.inventory-row:last-child{border-radius:0 0 calc(var(--radius) - 1px) calc(var(--radius) - 1px)}
#overview .inventory-panel>.empty{border:0;border-radius:0}
}

/* Mobile comparison: each feature heads the same two product columns. */
@media(max-width:600px){
#comparison table,#comparison thead,#comparison tbody{display:block}
#comparison tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
#comparison tr>th,#comparison tr>td{width:auto;min-width:0}
#comparison tr>th:first-child{grid-column:1/-1;border-right:0}
#comparison tbody tr>th{border-bottom:1px solid var(--line)}
#comparison .cloud-cell{grid-column:1}
#comparison .vault-cell{grid-column:2}
/* Feature labels head each group here; keep the column header for assistive tech only. */
#comparison thead th:first-child{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
}

#comparison td.cloud-cell.unique{box-shadow:inset 4px 0 0 #027aa2}
#comparison td.vault-cell.unique{box-shadow:inset 4px 0 0 #7619df}

nav a[aria-current]{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:4px}

/* Comparison state: provider tint for unique inclusion; neutral absence. */
#comparison td.cloud-cell.included.unique{background:color-mix(in srgb,var(--cloud-bg) 85%,var(--cloud))}
#comparison td.vault-cell.included.unique{background:color-mix(in srgb,var(--vault-bg) 85%,var(--violet))}
#comparison td.absent{background:#fff;color:var(--muted)}

#comparison td.included:not(.unique){background:#fff}

#comparison thead th.cloud-cell{background:var(--cloud-bg)}
#comparison thead th.vault-cell{background:var(--vault-bg)}

/* Narrow overview rows break only between complete feature names. */
@media(max-width:600px){#overview .features .feature{white-space:nowrap}}

/* Let the open mobile menu displace content instead of cutting through it. */
@media(max-width:600px){
  .header:has(nav.open){height:auto;flex-wrap:wrap;padding-top:14px;padding-bottom:0;row-gap:14px}
  .header nav.open{position:static;flex-basis:calc(100% + 40px);margin:0 -20px;box-shadow:none}
}

/* Keep the current-page underline on the navigation label, not its decorative icon. */
.nav-compare>span{display:inline-block}
