/* Plans, on the billing page and the landing page. One card per plan, the
   numbers doing the talking. */
.notice { padding: .75rem 1rem; border-radius: 10px; background: var(--secondary);
          margin: 0 0 1rem; font-size: 13.5px; }
.notice.good { background: color-mix(in oklab, var(--c-green) 14%, transparent);
               color: color-mix(in oklab, var(--c-green) 55%, var(--foreground)); }

.usage-card { padding: 1.25rem; margin-bottom: 1.5rem; }
.usage-card h3 { margin: 0 0 .875rem; font-size: 15px; }
.meters { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.meter { display: flex; flex-direction: column; gap: .375rem; }
.meter-head { display: flex; justify-content: space-between; align-items: baseline;
              gap: .5rem; font-size: 13.5px; font-weight: 500; }
.meter-head .nums { color: var(--muted-foreground); font-weight: 600; }
.meter .bar { height: .5rem; border-radius: 999px; background: var(--secondary); overflow: hidden; }
.meter .bar-fill { display: block; height: 100%; border-radius: 999px; background: var(--primary); }
.meter.full .bar-fill { background: var(--c-red); }
.meter.full .meter-head .nums { color: var(--c-red); }
.meter-note { font-size: 12px; }
.seats-note { margin: 1rem 0 0; }

.plans-head { font-size: 15px; margin: 0 0 .75rem; }
.plan-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
             margin-bottom: 1.5rem; }
.plan-card {
  position: relative; display: flex; flex-direction: column; gap: .5rem;
  padding: 1.375rem; border-radius: var(--radius-lg);
  border: 1px solid var(--border); background: var(--glass);
  -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
  box-shadow: var(--glass-edge), var(--glass-shadow);
}
.plan-card.featured { border-color: color-mix(in oklab, var(--primary) 45%, var(--border));
                      background: linear-gradient(180deg,
                        color-mix(in oklab, var(--primary) 10%, transparent),
                        transparent 60%), var(--glass); }
.plan-card.current { border-color: color-mix(in oklab, var(--c-green) 45%, var(--border)); }
.ribbon { position: absolute; top: -.6rem; right: 1rem; font-size: 11px; font-weight: 600;
          letter-spacing: .04em; text-transform: uppercase; padding: .2rem .5rem;
          border-radius: 999px; background: var(--primary); color: var(--primary-foreground); }
.plan-card h4 { margin: 0; font-size: 16px; letter-spacing: -.01em; }
.price { margin: 0; display: flex; align-items: baseline; gap: .25rem; }
.price .amount { font-size: 30px; font-weight: 700; letter-spacing: -.03em; }
.price .per { color: var(--muted-foreground); font-size: 13px; }
.plan-card .blurb { margin: 0; font-size: 13px; line-height: 1.5; }
.perks { list-style: none; margin: .375rem 0 1rem; padding: 0; display: flex;
         flex-direction: column; gap: .375rem; }
.perks li { position: relative; padding-inline-start: 1.25rem; font-size: 13.5px; line-height: 1.45; }
.perks li::before { content: ""; position: absolute; left: 0; top: .45rem; width: .45rem;
                    height: .45rem; border-radius: 50%; background: var(--primary); }
.plan-card form, .plan-card .btn-primary { margin-top: auto; }
.plan-card .btn-primary { width: 100%; height: 2.5rem; }
.on-plan { margin-top: auto; text-align: center; font-size: 13px; font-weight: 600;
           color: color-mix(in oklab, var(--c-green) 55%, var(--foreground)); }

.manage { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; padding: 1.25rem; }
.manage p { margin: .25rem 0 0; max-width: 34rem; }
.manage form { margin-inline-start: auto; }
.legal-note { margin: 1rem 0 0; }
.legal-note a { text-decoration: underline; }

/* The pricing block on the landing page reuses the cards. */
.pricing .plan-grid { max-width: 58rem; margin: 0 auto; }
.pricing .plan-card { text-align: start; }
.pricing-note { text-align: center; color: var(--muted-foreground); margin: 1rem auto 0;
                max-width: 34rem; font-size: 13.5px; }
