@import url('https://fonts.googleapis.com/css2?family=Onest:wght@400;500;600;700;800&display=swap');

:root {
  --font: 'Onest', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --b: #723fd9;
  --b-hi: #5d2eb8;
  --b-soft: #f7f5fe;
  --b-100: #edeaff;
  --b-200: #dbd4ff;
  --b-ink: #452786;
  --ink: #15151b;
  --t2: #46464f;
  --t3: #696973;
  --line: #e6e5ec;
  --line2: #d0d0d5;
  --fill: #f4f3f8;
  --fill2: #ebebee;
  --ok: #00793d;
  --ok-soft: #defae6;
  --ok-s: #ddf7e6;
  --ok-ink: #00582c;
  --bad: #cc2827;
  --bad-soft: #ffece9;
  --bad-s: #ffece9;
  --bad-ink: #9e1618;
  --warn: #9a5b00;
  --warn-soft: #fff4d7;
  --warn-s: #fff2d6;
  --warn-ink: #784900;
  --b-50: #f7f5fe;
  --cut: #723fd9;
  --cut-s: #efe9ff;
  --beard: #c2410c;
  --beard-s: #ffeadb;
  --color: #be185d;
  --color-s: #ffe3ef;
  --blow: #0369a1;
  --blow-s: #dff1fd;
  --care: #047857;
  --care-s: #d9f7e8;
  --kid: #a16207;
  --kid-s: #fdf3c7;
  --mert: #723fd9;
  --elif: #0e7490;
  --can: #c2410c;
  --shadow: 0 1px 2px rgba(21,21,27,.05), 0 8px 24px rgba(21,21,27,.07);
  --s1: 4px;
  --s2: 8px;
  --s3: 12px;
  --s4: 16px;
  --s5: 20px;
  --s6: 24px;
  --s8: 32px;
  --s10: 40px;
  --s14: 56px;
  --r-sm: 10px;
  --r-chip: 12px;
  --r-input: 14px;
  --r-row: 16px;
  --r-card: 20px;
  --r-sheet: 24px;
  --r-pill: 99px;
  --shadow-float: 0 8px 24px rgba(21,21,27,.25);
  --shadow-overlay: 0 -8px 40px rgba(21,21,27,.18);
}

* { box-sizing: border-box; }
body { margin: 0; background: #fff; color: var(--ink); font-family: var(--font); -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: default; }
a { color: var(--b); text-decoration: none; }
a:hover { color: var(--b-hi); }
input::placeholder, textarea::placeholder { color: #8e8e96; }
:focus-visible { outline: 3px solid var(--b-200); outline-offset: 2px; }
[hidden] { display: none !important; }

.Display { margin: 0; font: 700 28px/34px var(--font); letter-spacing: -.02em; }
.Title { margin: 0; font: 700 22px/28px var(--font); letter-spacing: -.01em; }
.Headline { font: 600 17px/24px var(--font); }
.Body { font: 400 16px/24px var(--font); }
.Label { font: 600 14px/20px var(--font); }
.Caption { font: 400 13px/18px var(--font); }
.Numeric { font: 600 16px/20px var(--font); font-variant-numeric: tabular-nums; }
.Muted { color: var(--t2); }
.Quiet { color: var(--t3); }

.Btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s2);
  width: auto;
  height: 56px;
  padding: 0 var(--s6);
  border: 0;
  border-radius: var(--r-row);
  background: var(--b);
  color: #fff;
  font: 600 17px/1 var(--font);
  white-space: nowrap;
  transition: background .15s, transform .1s;
}
.Btn:hover { background: var(--b-hi); }
.Btn:active { transform: scale(.98); }
.Btn:disabled, .Btn[aria-disabled="true"] { background: var(--fill2); color: #9a9aa2; }
.Btn-secondary { background: var(--fill); color: var(--ink); }
.Btn-secondary:hover { background: var(--fill2); }
.Btn-outline { border: 1.5px solid var(--line2); background: #fff; color: var(--ink); }
.Btn-outline:hover { background: var(--fill); }
.Btn-soft { background: var(--b-100); color: var(--b-ink); }
.Btn-soft:hover { background: var(--b-200); }
.Btn-ghost { background: transparent; color: var(--b); }
.Btn-ghost:hover { background: var(--b-soft); }
.Btn-danger { background: var(--bad); color: #fff; }
.Btn-danger:hover { background: #a81f1e; }
.Btn-danger-soft { background: var(--bad-soft); color: var(--bad-ink); }
.Btn-danger-soft:hover { background: #ffdcd6; }
.Btn-md { height: 48px; padding: 0 var(--s5); border-radius: var(--r-input); font-size: 16px; }
.Btn-sm { height: 44px; padding: 0 14px; border-radius: var(--r-chip); font-size: 14px; }
.Btn-full { width: 100%; }
.Btn-icon { width: 44px; min-width: 44px; padding: 0; border-radius: 50%; }
.Btn-loading::before { content: ''; width: 18px; height: 18px; flex: none; border: 2.5px solid currentColor; border-top-color: transparent; border-radius: 50%; opacity: .85; animation: BuyraSpin .7s linear infinite; }
.Icon { display: block; flex: none; width: 24px; height: 24px; }
.Icon-sm { width: 18px; height: 18px; }

.Field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.Field-label { font: 600 14px/20px var(--font); }
.Field-input {
  width: 100%;
  min-width: 0;
  height: 56px;
  padding: 0 var(--s4);
  border: 1.5px solid var(--line2);
  border-radius: var(--r-input);
  background: #fff;
  color: var(--ink);
  font: 400 17px/1.3 var(--font);
  outline: none;
}
textarea.Field-input { height: auto; min-height: 88px; padding-top: 14px; padding-bottom: 14px; resize: vertical; }
select.Field-input { appearance: auto; }
.Field-input:focus { border-color: var(--b); box-shadow: 0 0 0 3px var(--b-200); }
.Field-input[readonly] { background: var(--fill); }
.Field-error { display: flex; align-items: flex-start; gap: 6px; color: var(--bad-ink); font: 400 13px/18px var(--font); }
.Field-invalid .Field-input { border-color: var(--bad); }
.Field-hint { color: var(--t2); font: 400 13px/18px var(--font); }

.Chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s2);
  min-width: 0;
  height: 48px;
  padding: 0 var(--s3);
  border: 1.5px solid var(--line2);
  border-radius: var(--r-chip);
  background: #fff;
  color: var(--ink);
  font: 600 14px/1 var(--font);
  font-variant-numeric: tabular-nums;
}
.Chip:hover { background: var(--b-soft); }
.Chip-selected, .Chip[aria-pressed="true"] { border-color: var(--b); background: var(--b); color: #fff; }
.Chip-selected:hover, .Chip[aria-pressed="true"]:hover { background: var(--b-hi); }
.Chip:disabled { color: #c1c1c7; background: var(--fill); }
.Chip-filter { height: 38px; border-radius: var(--r-pill); }
.Chip-filter .Chip-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--b); }
.Chip-group { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; }

.Badge { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 var(--s3); border-radius: var(--r-pill); background: var(--fill2); color: var(--t2); font: 600 14px/1 var(--font); white-space: nowrap; }
.Badge::before { content: ''; width: 6px; height: 6px; flex: none; border-radius: 50%; background: currentColor; }
.Badge-sm { height: 24px; padding: 0 9px; font-size: 12px; }
.Badge-ok { background: var(--ok-soft); color: var(--ok-ink); }
.Badge-ok::before { background: var(--ok); }
.Badge-cancel { background: var(--bad-soft); color: var(--bad-ink); }
.Badge-cancel::before { background: var(--bad); }
.Badge-new { background: var(--b-100); color: var(--b-ink); }
.Badge-new::before { display: none; }
.Badge-past::before { background: var(--t2); }

.Logo { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 7px; color: var(--ink); line-height: 1; }
.Logo-word { font: 700 28px/1 var(--font); letter-spacing: .16em; margin-right: -.16em; }
.Logo-bar { width: 42px; height: 4px; border-radius: var(--r-pill); background: var(--b); }
.Logo-sm .Logo-word { font-size: 20px; }
.Logo-sm .Logo-bar { width: 30px; height: 3px; }
.Logo-lg .Logo-word { font-size: 34px; }
.Logo-lg .Logo-bar { width: 51px; height: 5px; }

.ChoiceRow { display: flex; align-items: center; gap: 14px; width: 100%; min-height: 72px; padding: 14px 18px; border: 1.5px solid var(--line); border-radius: var(--r-row); background: #fff; color: var(--ink); text-align: left; }
.ChoiceRow:hover { border-color: var(--b-200); background: var(--b-soft); }
.ChoiceRow[aria-pressed="true"] { border-color: var(--b); background: var(--b-soft); }
.ChoiceRow-main { flex: 1; min-width: 0; }
.ChoiceRow-title { font: 600 17px/1.3 var(--font); }
.ChoiceRow-meta { margin-top: 2px; color: var(--t2); font: 400 14px/1.3 var(--font); }
.ChoiceRow-end { font: 600 17px/1 var(--font); font-variant-numeric: tabular-nums; }
.ChoiceRow-avatar { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; flex: none; border-radius: 50%; background: var(--b-100); color: var(--b-ink); font: 700 16px/1 var(--font); }
.Card { border: 1.5px solid var(--line); border-radius: var(--r-card); background: #fff; }
.Card-flat { border: 0; background: var(--fill); }
.Card-pad { padding: var(--s5); }
.Card-head { display: flex; align-items: center; gap: var(--s3); padding: 16px 18px; background: var(--fill); border-radius: var(--r-card) var(--r-card) 0 0; }
.Card-foot { display: flex; justify-content: space-between; padding: 16px 18px; background: var(--fill); border-radius: 0 0 var(--r-card) var(--r-card); font: 700 18px/1 var(--font); }
.Divider { border: 0; border-top: 1px solid var(--line); }

.Segmented { display: inline-flex; padding: 3px; border-radius: var(--r-chip); background: var(--fill); }
.Segmented-item { height: 34px; padding: 0 14px; border: 0; border-radius: 10px; background: transparent; color: var(--ink); font: 600 14px/34px var(--font); }
.Segmented-item[aria-pressed="true"] { background: #fff; box-shadow: 0 1px 3px rgba(21,21,27,.14); }
.Notice { display: flex; align-items: flex-start; gap: 10px; padding: 14px 16px; border-radius: var(--r-input); background: var(--fill); color: var(--t2); font: 500 15px/1.4 var(--font); }
.Notice-error { background: var(--bad-soft); color: var(--bad-ink); }
.Notice-success { background: var(--ok-soft); color: var(--ok-ink); }
.Empty { display: flex; flex-direction: column; align-items: center; gap: var(--s3); padding: 28px 16px; border: 1.5px dashed var(--line2); border-radius: var(--r-card); color: var(--t2); text-align: center; }
.Empty-icon { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%; background: var(--fill); }
.Skeleton { position: relative; overflow: hidden; border-radius: var(--r-row); background: var(--fill); }
.Skeleton::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(255,255,255,.72), transparent); animation: BuyraPulse 1.2s ease-in-out infinite; }
.Skeleton-row { height: 72px; margin-bottom: 10px; }
.Toast { position: fixed; top: 20px; left: 50%; z-index: 30; display: flex; align-items: center; gap: 10px; transform: translateX(-50%); padding: 12px 18px; border-radius: var(--r-input); background: var(--ink); color: #fff; box-shadow: var(--shadow-float); font: 600 15px/1.2 var(--font); white-space: nowrap; }
.Overlay { position: fixed; inset: 0; z-index: 20; display: flex; align-items: flex-end; justify-content: center; padding: 0; background: rgba(21,21,27,.4); }
.Sheet { width: 100%; max-height: 92%; overflow-y: auto; padding: 12px 20px 24px; border-radius: var(--r-sheet) var(--r-sheet) 0 0; background: #fff; box-shadow: var(--shadow-overlay); }
.Sheet-handle { width: 40px; height: 4px; margin: 0 auto 16px; border-radius: 2px; background: var(--line2); }
.Sheet-title { margin: 0 0 12px; font: 700 20px/1.25 var(--font); }
.Sheet-actions { display: flex; flex-direction: column; gap: var(--s2); margin-top: var(--s4); }

.Cal { width: 100%; color: var(--ink); }
.Cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.Cal-title { font: 700 19px/1 var(--font); letter-spacing: -.01em; white-space: nowrap; }
.Cal-nav { display: flex; gap: var(--s2); }
.Cal-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); row-gap: 4px; }
.Cal-weekday { text-align: center; font: 500 13px/32px var(--font); color: var(--t3); }
.Cal-day { height: 44px; padding: 0; border: 1.5px solid transparent; border-radius: var(--r-input); background: transparent; color: var(--ink); font: 600 16px/1 var(--font); font-variant-numeric: tabular-nums; }
.Cal-day:hover { background: var(--b-soft); }
.Cal-day[aria-pressed="true"] { border-color: var(--b); background: var(--b); color: #fff; }
.Cal-day-today { border-color: var(--b); }
.Cal-day:disabled { color: #c1c1c7; }
.Cal-day-empty { visibility: hidden; }

.AppBar { position: sticky; top: 0; z-index: 8; display: flex; align-items: center; justify-content: space-between; min-height: 56px; padding: 0 var(--s3); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); backdrop-filter: blur(12px); }
.AppBar-title { color: var(--t2); font: 600 15px/1 var(--font); }
.AppBar-side { display: flex; align-items: center; justify-content: center; min-width: 40px; min-height: 40px; }
.Progress { height: 3px; margin: 0 20px 16px; border-radius: 2px; background: var(--fill2); }
.Progress-value { height: 3px; border-radius: 2px; background: var(--b); }
.Stack { display: flex; flex-direction: column; gap: var(--s3); }
.Stack-lg { gap: var(--s6); }
.Row { display: flex; align-items: center; gap: var(--s3); }
.Row-wrap { flex-wrap: wrap; }
.Space-between { justify-content: space-between; }
.Center { text-align: center; }
.Full { width: 100%; }
.Hidden { display: none !important; }

@keyframes BuyraSpin { to { transform: rotate(360deg); } }
@keyframes BuyraPulse { 50% { opacity: .45; transform: translateX(40%); } }
@media (min-width: 760px) {
  .Display { font-size: 32px; line-height: 40px; }
  .Overlay { align-items: center; padding: 24px; }
  .Sheet { width: 440px; padding: 28px; border-radius: var(--r-sheet); }
  .Sheet-drawer { align-self: stretch; width: 440px; max-height: 100%; border-radius: 0; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
