:root{--color-bg:#a7d8f0;--color-surface:#fff;--color-border:#c5dff0;--color-text:#1a365d;--color-text-muted:#4a6fa5;--color-primary:#c6367a;--color-primary-hover:#a82d65;--color-danger:#e04545;--color-lesson:#1fb8b8;--color-open-play:#f47b20;--color-social:#d63384;--color-tournament:#7b3fc6;--color-custom:#e8a317;--color-teal:#1fb8b8;--color-magenta:#c6367a;--color-navy:#1e3a8a;--color-emerald:#2daf6a;--color-orange:#f47b20;--color-purple:#7b3fc6;--color-gold:#f5b731;--shadow-sm:0 1px 3px #1a365d14;--shadow-md:0 8px 24px #1a365d1f;--radius:12px;--font-serif:"Georgia", "Times New Roman", serif;--font-sans:system-ui, -apple-system, "Segoe UI", sans-serif}*,:before,:after{box-sizing:border-box}body{min-height:100vh;font-family:var(--font-sans);color:var(--color-text);background:radial-gradient(circle at 10% 10%, #1fb8b82e, transparent 42%), radial-gradient(circle at 90% 15%, #c6367a24, transparent 40%), radial-gradient(circle at 80% 90%, #7b3fc61a, transparent 38%), radial-gradient(circle at 20% 80%, #f47b2014, transparent 35%), var(--color-bg);margin:0}#root{min-height:100vh}button,input,select,textarea{font:inherit}a{color:var(--color-teal)}a:hover{color:var(--color-magenta)}.app{max-width:1200px;margin:0 auto;padding:1.5rem}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.app-header__brand{align-items:center;gap:1rem;display:flex}.app-header__logo{gap:.25rem;display:flex}.tile{width:2.25rem;height:2.75rem;font-family:var(--font-serif);background:#fff;border:1px solid #c5dff0e6;border-radius:6px;justify-content:center;align-items:center;font-size:1.1rem;font-weight:700;display:inline-flex;box-shadow:0 2px 6px #1a365d1f}.tile--teal{color:var(--color-teal)}.tile--magenta{color:var(--color-magenta)}.tile--orange{color:var(--color-orange)}.tile--purple{color:var(--color-purple)}.app-header h1{font-family:var(--font-serif);letter-spacing:-.02em;color:var(--color-navy);margin:0;font-size:1.75rem;font-weight:700}.app-header__subtitle{color:var(--color-text-muted);margin:.15rem 0 0;font-size:.95rem}.app-main{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-md);overflow:hidden}.calendar-toolbar{border-bottom:1px solid var(--color-border);background:linear-gradient(135deg,#fffffff2,#a7d8f040);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.calendar-toolbar__nav{align-items:center;gap:.5rem;display:flex}.calendar-toolbar__title{text-align:center;min-width:12rem;font-family:var(--font-serif);color:var(--color-navy);margin:0;font-size:1.35rem}.calendar-toolbar__meta{align-items:center;gap:.75rem;display:flex}.event-count{color:var(--color-text-muted);font-size:.875rem}.schedule-views{position:relative}.schedule-status{text-align:center;color:var(--color-text-muted);margin:0;padding:2rem 1.25rem}.schedule-status--error{color:var(--color-danger);flex-direction:column;align-items:center;gap:.75rem;display:flex}.schedule-status--error p{margin:0}.calendar--grid{background:var(--color-border);grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;display:none}.event-list{display:block}@media (width>=768px){.calendar--grid{display:grid}.event-list{display:none}}.event-list{padding:0}.event-list--empty{text-align:center;flex-direction:column;align-items:center;gap:.75rem;padding:2.5rem 1.25rem;display:flex}.event-list__empty{color:var(--color-text-muted);margin:0;font-size:.95rem}.event-list__day{border-bottom:1px solid var(--color-border);scroll-margin-top:1rem}.event-list__day:last-child{border-bottom:none}.event-list__date-header{z-index:2;border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:linear-gradient(90deg,#fffffff7,#a7d8f059);justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem 1rem;display:flex;position:sticky;top:0}.event-list__date-header--today{background:linear-gradient(90deg,#1fb8b81f,#c6367a14);border-bottom-color:#1fb8b859}.event-list__date-label{flex-wrap:wrap;align-items:center;gap:.5rem;min-width:0;display:flex}.event-list__date-label time{font-family:var(--font-serif);color:var(--color-navy);font-size:.95rem;font-weight:700;line-height:1.3}.event-list__today-badge{background:linear-gradient(135deg, var(--color-teal), var(--color-magenta));color:#fff;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;align-items:center;padding:.15rem .45rem;font-size:.65rem;font-weight:700;display:inline-flex}.event-list__add-btn{border:1px dashed var(--color-border);color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;padding:.3rem .55rem;font-size:.75rem;font-weight:600;transition:background .15s,border-color .15s,color .15s}.event-list__add-btn:hover{border-color:var(--color-teal);color:var(--color-teal);background:#1fb8b81a}.event-list__events{margin:0;padding:0;list-style:none}.event-list__events>li{border-bottom:1px solid #c5dff099}.event-list__events>li:last-child{border-bottom:none}.event-list-item{background:var(--color-surface);text-align:left;cursor:pointer;border:none;flex-direction:column;align-items:flex-start;gap:.25rem;width:100%;padding:.85rem 1rem;transition:background .15s;display:flex}.event-list-item:hover,.event-list-item:focus-visible{background:#1fb8b80f;outline:none}.event-list-item:active{background:#1fb8b81a}.event-list-item__header{flex-wrap:wrap;align-items:center;gap:.35rem;width:100%;display:flex}.event-list-item__category{letter-spacing:.03em;text-transform:uppercase;border-radius:999px;padding:.15rem .45rem;font-size:.65rem;font-weight:700;display:inline-block}.event-list-item__category--lesson{color:var(--color-lesson);background:#1fb8b826}.event-list-item__category--open-play{color:var(--color-open-play);background:#f47b2026}.event-list-item__category--social{color:var(--color-social);background:#d6338426}.event-list-item__category--tournament{color:var(--color-tournament);background:#7b3fc626}.event-list-item__custom{border:1px dashed var(--color-custom);color:var(--color-custom);text-transform:uppercase;background:#e8a3171a;border-radius:999px;padding:.1rem .4rem;font-size:.62rem;font-weight:700}.event-list-item__price{color:var(--color-navy);background:#1a365d0f;border-radius:4px;margin-left:auto;padding:.1rem .4rem;font-size:.75rem;font-weight:700}.event-list-item__title{color:var(--color-text);font-size:.95rem;font-weight:600;line-height:1.35}.event-list-item__meta{color:var(--color-text-muted);font-size:.8rem;line-height:1.4}.event-list-item--custom{border-left:3px solid var(--color-custom)}.calendar__weekday{text-align:center;letter-spacing:.06em;text-transform:uppercase;color:var(--color-navy);background:linear-gradient(90deg,#1fb8b814,#c6367a0f,#7b3fc614);padding:.65rem .5rem;font-size:.75rem;font-weight:600}.calendar__day{background:var(--color-surface);min-width:0;min-height:7.5rem;padding:.4rem;transition:background .15s}.calendar__day--outside{opacity:.65;background:#a7d8f02e}.calendar__day--today{background:#1fb8b814}.calendar__day--today .calendar__day-number{background:linear-gradient(135deg, var(--color-teal), var(--color-magenta));color:#fff}.calendar__day-header{justify-content:space-between;align-items:center;margin-bottom:.35rem;display:flex}.calendar__day-number{border-radius:999px;justify-content:center;align-items:center;width:1.6rem;height:1.6rem;font-size:.85rem;font-weight:600;display:inline-flex}.calendar__add-btn{border:1px dashed var(--color-border);width:1.4rem;height:1.4rem;color:var(--color-text-muted);cursor:pointer;opacity:0;background:0 0;border-radius:4px;padding:0;line-height:1;transition:opacity .15s,background .15s}.calendar__day:hover .calendar__add-btn{opacity:1}.calendar__add-btn:hover{color:var(--color-teal);border-color:var(--color-teal);background:#1fb8b81f}.calendar__events{flex-direction:column;gap:.2rem;display:flex}.event-badge{width:100%;color:var(--color-text);cursor:pointer;text-align:left;background:#1fb8b81a;border:none;border-radius:4px;align-items:center;gap:.3rem;padding:.2rem .35rem;font-size:.7rem;line-height:1.2;transition:transform .1s,box-shadow .1s;display:flex}.event-badge:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.event-badge__dot{background:currentColor;border-radius:999px;flex-shrink:0;width:.4rem;height:.4rem}.event-badge__title{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.event-badge__price{opacity:.85;background:#0000000f;border-radius:3px;flex-shrink:0;padding:.05rem .25rem;font-size:.62rem;font-weight:600;line-height:1.1}.event-badge__category{display:none}.event-badge--lesson{color:var(--color-lesson);background:#1fb8b824}.event-badge--open-play{color:var(--color-open-play);background:#f47b2024}.event-badge--social{color:var(--color-social);background:#d6338424}.event-badge--tournament{color:var(--color-tournament);background:#7b3fc624}.event-badge--custom{border:1px dashed var(--color-custom);color:var(--color-custom);background:#e8a3171a}.calendar__more{color:var(--color-text-muted);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:4px;padding:.15rem .35rem;font-size:.68rem}.calendar__more:hover{color:var(--color-magenta);background:#c6367a14}.legend{border-top:1px solid var(--color-border);background:linear-gradient(90deg,#ffffffe6,#a7d8f033);flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.85rem 1.25rem;font-size:.8rem;display:flex}.legend__label{color:var(--color-text-muted);font-weight:600}.legend__item{align-items:center;gap:.35rem;display:inline-flex}.legend__item:before{content:"";border-radius:999px;width:.55rem;height:.55rem}.legend__item--lesson:before{background:var(--color-lesson)}.legend__item--open-play:before{background:var(--color-open-play)}.legend__item--social:before{background:var(--color-social)}.legend__item--tournament:before{background:var(--color-tournament)}.legend__item--custom:before{background:var(--color-custom)}.btn{cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:.35rem;padding:.55rem 1rem;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}.btn--primary{background:linear-gradient(135deg, var(--color-magenta), #d63384);color:#fff;box-shadow:0 2px 8px #c6367a4d}.btn--primary:hover{background:linear-gradient(135deg, var(--color-primary-hover), var(--color-magenta));box-shadow:0 4px 12px #c6367a59}.btn--ghost{border-color:var(--color-border);color:var(--color-text);background:0 0}.btn--ghost:hover{color:var(--color-navy);background:#1fb8b814;border-color:#1fb8b866}.btn--danger{background:var(--color-danger);color:#fff}.btn--danger:hover{background:#c73a3a}.btn--small{padding:.35rem .75rem;font-size:.85rem}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1a365d66;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{border-radius:var(--radius);background:var(--color-surface);border:1px solid var(--color-border);width:100%;max-width:28rem;max-height:90vh;box-shadow:var(--shadow-md);padding:1.25rem;overflow-y:auto}.modal--wide{max-width:32rem}.modal__header{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.75rem;display:flex}.modal__close{width:2rem;height:2rem;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:0;font-size:1.5rem;line-height:1}.modal__close:hover{color:var(--color-teal);background:#1fb8b81a}.modal__title{font-family:var(--font-serif);color:var(--color-navy);margin:0 0 1rem;font-size:1.35rem;line-height:1.3}.modal__title--inline{margin-bottom:0}.modal__category{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:.2rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.modal__category--lesson{color:var(--color-lesson);background:#1fb8b826}.modal__category--open-play{color:var(--color-open-play);background:#f47b2026}.modal__category--social{color:var(--color-social);background:#d6338426}.modal__category--tournament{color:var(--color-tournament);background:#7b3fc626}.modal__custom-tag{color:var(--color-custom);background:#e8a31726;border-radius:999px;margin-left:.4rem;padding:.2rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.modal__details{margin:0 0 1.25rem}.modal__details>div{margin-bottom:.75rem}.modal__details dt{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:.15rem;font-size:.75rem;font-weight:600}.modal__details dd{margin:0;line-height:1.5}.modal__actions{flex-wrap:wrap;gap:.5rem;display:flex}.event-form{flex-direction:column;gap:.85rem;display:flex}.field{flex-direction:column;gap:.35rem;display:flex}.field span{color:var(--color-text-muted);font-size:.85rem;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--color-border);color:var(--color-text);background:#fff;border-radius:8px;padding:.55rem .65rem}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-teal);outline:2px solid #1fb8b859}.field-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.form-error{color:var(--color-danger);background:#e045451a;border-radius:8px;margin:0;padding:.5rem .65rem;font-size:.875rem}@media (width<=767px){.app{padding:1rem}.app-header h1{font-size:1.35rem}.app-header__subtitle{font-size:.85rem}.calendar-toolbar{padding:.75rem 1rem}.calendar-toolbar__nav{flex:1;justify-content:space-between}.calendar-toolbar__title{min-width:auto;font-size:1.1rem}.calendar-toolbar__meta{justify-content:space-between;width:100%}.field-row{grid-template-columns:1fr}.legend{padding:.75rem 1rem;font-size:.75rem}}@media (width>=768px){.field-row{grid-template-columns:1fr 1fr}}.sources{border-top:1px solid var(--color-border);background:#fff;padding:1rem 1.25rem 1.25rem}.sources__title{font-family:var(--font-serif);color:var(--color-navy);margin:0 0 .35rem;font-size:1rem}.sources__subtitle{color:var(--color-text-muted);margin:0 0 .85rem;font-size:.85rem;line-height:1.45}.sources__list{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.sources__list li{flex-direction:column;gap:.1rem;display:flex}.sources__list a{color:var(--color-teal);font-weight:600;text-decoration:none}.sources__list a:hover{color:var(--color-magenta);text-decoration:underline}.sources__description{color:var(--color-text-muted);font-size:.8rem}
