:root{--bg:oklch(16% .02 265);--surface:oklch(19% .025 265);--card:oklch(24% .025 265);--accent:oklch(65% .19 265);--accent-2:oklch(60% .18 280);--success:oklch(72% .17 195);--danger:oklch(68% .18 25);--text:#fff;--text-muted:oklch(70% .01 265);--link:oklch(75% .15 200);--radius-card:16px;--radius-btn:14px;--radius-chip:20px;--font:"Inter", system-ui, sans-serif;--gradient:linear-gradient(135deg, var(--accent), var(--accent-2))}*,:before,:after{box-sizing:border-box}html,body,#root{background:var(--bg);min-height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0}button,input,textarea,select{font:inherit;color:inherit}a{color:var(--link);text-decoration:none}button{cursor:pointer;background:0 0;border:none}.app-shell{background:var(--surface);flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;display:flex}.app-shell--with-nav .app-shell__body{padding-bottom:calc(24px + 64px + env(safe-area-inset-bottom))}.app-shell--with-nav .sticky-cta{bottom:calc(64px + env(safe-area-inset-bottom))}.app-shell__body{flex:1;padding:0 16px 24px;overflow-y:auto}.app-shell__body--flush{padding:0}.sticky-header{z-index:10;background:color-mix(in oklab, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;font-size:15px;font-weight:700;display:flex}.brand__logo{background:var(--gradient);border-radius:10px;place-items:center;width:32px;height:32px;font-size:14px;display:grid}.avatar{background:var(--gradient);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:32px;height:32px;font-size:12px;font-weight:700;display:grid}.avatar--lg{width:72px;height:72px;font-size:24px}.page-title{letter-spacing:-.02em;margin:8px 0 16px;font-size:24px;font-weight:800}.chip-row{scrollbar-width:none;gap:8px;margin-bottom:16px;padding-bottom:4px;display:flex;overflow-x:auto}.chip-row::-webkit-scrollbar{display:none}.chip{border-radius:var(--radius-chip);background:var(--card);color:var(--text-muted);flex-shrink:0;padding:8px 14px;font-size:13px;font-weight:600}.chip--active{background:var(--accent);color:#fff}.date-strip{scrollbar-width:none;gap:8px;margin-bottom:14px;display:flex;overflow-x:auto}.date-strip::-webkit-scrollbar{display:none}.date-pill{background:var(--card);text-align:center;border-radius:14px;flex-direction:column;flex-shrink:0;gap:4px;width:48px;padding:10px 0;display:flex}.date-pill__dow{color:var(--text-muted);text-transform:uppercase;font-size:10px;font-weight:600}.date-pill__day{font-size:16px;font-weight:700}.date-pill--active{background:var(--accent)}.date-pill--active .date-pill__dow,.date-pill--active .date-pill__day{color:#fff}.card{background:var(--card);border-radius:var(--radius-card);margin-bottom:10px;padding:14px 16px}.card__title{margin:0 0 6px;font-size:16px;font-weight:700}.card__meta{color:var(--text-muted);flex-wrap:wrap;gap:8px;margin:0;font-size:13px;display:flex}.badge{border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge--success{background:color-mix(in oklab, var(--success) 22%, transparent);color:var(--success)}.badge--accent{background:color-mix(in oklab, var(--accent) 22%, transparent);color:oklch(82% .1 265)}.badge--danger{background:color-mix(in oklab, var(--danger) 22%, transparent);color:var(--danger)}.progress{margin-top:10px}.progress__label{color:var(--text-muted);justify-content:space-between;margin-bottom:6px;font-size:12px;display:flex}.progress__label--danger{color:var(--danger)}.progress__track{background:color-mix(in oklab, var(--text) 10%, transparent);border-radius:999px;height:6px;overflow:hidden}.progress__fill{border-radius:inherit;background:var(--success);height:100%}.progress__fill--danger{background:var(--danger)}.sticky-cta{padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(to top, var(--surface) 70%, transparent);position:sticky;bottom:0}.btn{border-radius:var(--radius-btn);justify-content:center;align-items:center;width:100%;min-height:48px;padding:12px 16px;font-size:15px;font-weight:700;transition:opacity .15s;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:var(--gradient);color:#fff}.btn--danger{background:color-mix(in oklab, var(--danger) 25%, var(--card));color:var(--danger)}.btn--ghost{background:var(--card);color:var(--text)}.btn--sm{width:auto;min-height:36px;padding:8px 12px;font-size:13px}.field{margin-bottom:14px}.field__label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px;font-size:11px;font-weight:700;display:block}.field__input,.field__textarea{background:var(--card);border:1px solid #0000;border-radius:12px;outline:none;width:100%;padding:12px 14px}.field__input:focus,.field__textarea:focus{border-color:color-mix(in oklab, var(--accent) 50%, transparent)}.field__textarea{resize:vertical;min-height:96px}.field-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.hero-banner{background:var(--gradient);min-height:120px;padding:16px 16px 28px}.back-btn{background:#00000040;border-radius:12px;place-items:center;width:36px;height:36px;font-size:18px;display:grid}.detail{background:var(--surface);border-radius:20px 20px 0 0;margin-top:-16px;padding:20px 16px 24px}.detail__title{margin:0 0 8px;font-size:22px;font-weight:800}.detail__when{color:var(--text-muted);margin:0 0 16px;font-size:14px}.detail__desc{color:color-mix(in oklab, var(--text) 88%, transparent);margin:0 0 16px;font-size:14px;line-height:1.5}.location-card{background:var(--card);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:14px;display:flex}.audit-line{color:var(--text-muted);margin:12px 0 0;font-size:12px;line-height:1.4}.profile-head{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:24px 0 8px;display:flex}.profile-head__name{margin:0;font-size:20px;font-weight:800}.profile-head__user{color:var(--text-muted);margin:0;font-size:14px}.counters{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;display:grid}.counter{background:var(--card);border-radius:14px;padding:14px}.counter__value{margin:0 0 4px;font-size:22px;font-weight:800}.counter__label{color:var(--text-muted);margin:0;font-size:12px}.participant-row{border-bottom:1px solid color-mix(in oklab, var(--text) 8%, transparent);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.participant-row:last-child{border-bottom:none}.toast{z-index:50;background:var(--card);border:1px solid color-mix(in oklab, var(--accent) 35%, transparent);color:var(--text);border-radius:12px;max-width:min(90vw,360px);padding:12px 16px;font-size:14px;font-weight:600;position:fixed;bottom:88px;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #00000059}.toast--error{border-color:color-mix(in oklab, var(--danger) 45%, transparent)}.empty{text-align:center;color:var(--text-muted);padding:32px 12px;font-size:14px}.link-row{gap:8px;margin-top:8px;display:flex}.text-danger{color:var(--danger);font-size:13px;font-weight:600}.segment{background:var(--card);border-radius:12px;grid-template-columns:1fr 1fr;gap:6px;padding:4px;display:grid}.segment__btn{color:var(--text-muted);border-radius:10px;padding:10px;font-size:13px;font-weight:600}.segment__btn--active{background:var(--accent);color:#fff}.gate{background:radial-gradient(ellipse at 20% 0%, color-mix(in oklab, var(--accent) 28%, transparent), transparent 55%), radial-gradient(ellipse at 80% 100%, color-mix(in oklab, var(--accent-2) 22%, transparent), transparent 50%), var(--bg);place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.gate__card{background:var(--surface);text-align:center;border-radius:20px;width:min(100%,400px);padding:32px 24px;box-shadow:0 20px 60px #00000059}.gate__logo{background:var(--gradient);border-radius:16px;place-items:center;width:56px;height:56px;margin:0 auto 14px;font-size:22px;font-weight:800;display:grid}.gate__brand{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0 0 8px;font-size:13px;font-weight:700}.gate__title{letter-spacing:-.02em;margin:0 0 12px;font-size:26px;font-weight:800}.gate__text{color:var(--text-muted);margin:0 0 24px;font-size:15px;line-height:1.5}.gate__hint{color:var(--text-muted);margin:0;font-size:13px;line-height:1.45}.gate__hint code{color:var(--success);font-size:12px}.header-profile{color:inherit;align-items:center;gap:8px;display:flex}.field__hint{color:var(--text-muted);margin:8px 0 0;font-size:12px;line-height:1.4}.admin-bar{flex-wrap:wrap;gap:8px;margin:0 0 14px;display:flex}.date-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.date-toolbar__title{color:var(--text-muted);text-transform:capitalize;margin:0;font-size:14px;font-weight:600}.date-pill{position:relative}.date-pill__dot{background:var(--success);border-radius:50%;width:5px;height:5px;margin:2px auto 0;display:block}.date-pill__dot--empty{background:0 0}.date-pill--active .date-pill__dot{background:#fff}.bottom-nav{z-index:20;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:color-mix(in oklab, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid color-mix(in oklab, var(--text) 8%, transparent);grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;display:grid;position:sticky;bottom:0}.bottom-nav__item{color:var(--text-muted);border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:8px 6px;font-size:11px;font-weight:600;text-decoration:none;display:flex}.bottom-nav__item--active{color:#fff;background:color-mix(in oklab, var(--accent) 28%, transparent)}.bottom-nav__icon{font-size:14px;line-height:1}.empty-block{text-align:center;background:var(--card);border-radius:var(--radius-card);margin-bottom:12px;padding:28px 12px}.empty-block__title{margin:0 0 8px;font-size:16px;font-weight:700}.empty-block__text{color:var(--text-muted);margin:0 0 16px;font-size:13px;line-height:1.45}.profile-head__hint{max-width:280px;color:var(--text-muted);margin:8px 0 0;font-size:12px;line-height:1.4}.cal-sheet{z-index:60;align-items:end;max-width:480px;margin:0 auto;display:grid;position:fixed;inset:0}.cal-sheet__backdrop{background:#0000008c;position:absolute;inset:0}.cal-sheet__panel{background:var(--surface);padding:16px 16px calc(16px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;position:relative;box-shadow:0 -12px 40px #00000059}.cal-sheet__head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.cal-sheet__nav{background:var(--card);border-radius:12px;width:40px;height:40px;font-size:22px;font-weight:700}.cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px;display:grid}.cal-grid--head{margin-bottom:6px}.cal-grid__dow{text-align:center;color:var(--text-muted);padding:4px 0;font-size:11px;font-weight:600}.cal-grid__day{aspect-ratio:1;background:0 0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:14px;font-weight:600;display:flex}.cal-grid__day--muted{color:color-mix(in oklab, var(--text-muted) 55%, transparent)}.cal-grid__day--today{box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--accent) 55%, transparent)}.cal-grid__day--selected{background:var(--accent);color:#fff}.cal-grid__dot{background:var(--success);border-radius:50%;width:5px;height:5px}.cal-grid__day--selected .cal-grid__dot{background:#fff}.modal-sheet{z-index:70;align-items:end;max-width:480px;margin:0 auto;display:grid;position:fixed;inset:0}.modal-sheet__backdrop{background:#0000008c;position:absolute;inset:0}.modal-sheet__panel{background:var(--surface);padding:20px 16px calc(16px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;position:relative;box-shadow:0 -12px 40px #00000059}.modal-sheet--success .modal-sheet__title{color:var(--success)}.modal-sheet--danger .modal-sheet__title{color:var(--danger)}.modal-sheet--warning .modal-sheet__title{color:oklch(82% .14 85)}.modal-sheet__title{margin:0 0 10px;font-size:20px;font-weight:800}.modal-sheet__text{margin:0 0 16px;font-size:14px;line-height:1.5}.modal-sheet__text--muted{color:var(--text-muted);font-size:13px}.modal-sheet__actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.modal-sheet__actions--stack{grid-template-columns:1fr}.cta-stack{gap:8px;display:grid}
