@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes slideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .4s ease-out}.animate-fade-in-up{animation:fadeInUp .5s ease-out}.animate-fade-in-down{animation:fadeInDown .5s ease-out}.animate-slide-in-left{animation:slideInLeft .5s cubic-bezier(.16,1,.3,1)}.animate-slide-in-right{animation:slideInRight .5s cubic-bezier(.16,1,.3,1)}.animate-slide-in-up{animation:slideInUp .5s cubic-bezier(.16,1,.3,1)}.animate-scale-in{animation:scaleIn .3s cubic-bezier(.16,1,.3,1)}.animate-delay-100{animation-delay:.1s}.animate-delay-200{animation-delay:.2s}.animate-delay-300{animation-delay:.3s}.animate-delay-400{animation-delay:.4s}body{background:var(--color-bg-secondary, #f8f9fa);color:var(--color-text-primary, #1a1a1a);font-family:var(--font-primary)}.app-shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh;background:var(--color-bg-secondary, #f8f9fa)}.sidebar{background:var(--color-bg-primary, #ffffff);border-right:1px solid var(--color-border, #e5e7eb);padding:28px 22px;display:flex;flex-direction:column;gap:24px;position:sticky;top:0;height:100vh;box-shadow:2px 0 8px #0000000a}.sidebar__brand{display:flex;gap:16px;align-items:center}.sidebar__logo{width:44px;height:44px;border-radius:var(--radius-sm);object-fit:cover}.sidebar__mark{width:44px;height:44px;border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-primary-contrast);display:grid;place-items:center;font-weight:700}.sidebar__app{font-family:var(--font-display);font-size:18px}.sidebar__tagline{color:var(--color-text-secondary);font-size:12px}.sidebar__nav{display:flex;flex-direction:column;gap:12px;overflow-y:auto;padding-right:6px}.nav-item{display:flex;gap:12px;align-items:center;padding:12px;border-radius:var(--radius-sm);text-decoration:none;color:inherit;border:1px solid transparent;transition:all .2s ease}.nav-item:hover{background:var(--color-bg-tertiary)}.nav-item--active{background:var(--color-primary-soft);border-color:var(--color-primary-soft-border)}.nav-item__icon{width:20px;height:20px;color:var(--color-primary)}.nav-item__label{font-size:14px;font-weight:600}.nav-item__desc{font-size:12px;color:var(--color-text-secondary)}.sidebar__footer{margin-top:auto;border-top:1px solid var(--color-border);padding-top:16px;padding-bottom:8px}.sidebar__user{display:flex;gap:12px;align-items:center;min-width:0;padding:8px 4px}.sidebar__avatar{width:38px;height:38px;border-radius:12px;background:var(--color-bg-tertiary);display:grid;place-items:center;font-weight:600;flex-shrink:0}.sidebar__user-info{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.sidebar__user-name{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%}.sidebar__user-role{font-size:12px;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-main{display:flex;flex-direction:column;min-height:100vh}.topbar{background:var(--color-bg-primary, #ffffff);border-bottom:1px solid var(--color-border, #e5e7eb);padding:18px 32px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 1px 3px #0000000f}.topbar__title{font-size:14px;color:var(--color-text-secondary)}.topbar__actions{display:flex;gap:12px}.page{padding:32px;display:flex;flex-direction:column;gap:24px;background:var(--color-bg-secondary, #f8f9fa);min-height:calc(100vh - 64px)}.page-header{display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px 28px;box-shadow:var(--shadow-sm)}.page-header h1{font-family:var(--font-display);font-size:26px;margin-bottom:6px}.page-header p{color:var(--color-text-secondary)}.page-header__actions{display:flex;gap:12px}.card{background:var(--color-bg-primary, #ffffff);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-lg);padding:28px 24px;box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .08));transition:transform .2s ease,box-shadow .2s ease}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:16px}.plan-card__header{width:100%;text-align:left;background:transparent;border:none;cursor:pointer;padding:0}.plan-card__header:hover .card__title{color:var(--color-primary)}.plan-card__details{margin-top:8px}.branding-page{display:grid;grid-template-columns:minmax(280px,1fr) 2fr;gap:24px;align-items:stretch}.branding-page__panel{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:32px;min-height:520px;display:flex;align-items:flex-end;box-shadow:var(--shadow-md)}.branding-page__panel-inner{display:flex;flex-direction:column;gap:12px;color:var(--color-text-primary)}.branding-page__panel-inner h2{font-family:var(--font-display);font-size:24px}.branding-page__panel-inner p{color:var(--color-text-secondary);font-size:14px}.branding-page__logo{width:72px;height:72px;border-radius:var(--radius-md);object-fit:cover}.branding-page__mark{width:72px;height:72px;border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-primary-contrast);display:grid;place-items:center;font-weight:700;font-size:20px}.branding-page__content{display:flex;flex-direction:column;gap:24px}.branding-page__card{padding:24px}.branding-form{display:flex;flex-direction:column;gap:20px}.branding-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.branding-label{font-size:12px;font-weight:600;color:var(--color-text-primary);margin-bottom:6px;display:inline-block}.branding-hint{color:var(--color-text-secondary);font-size:12px}.branding-upload{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-tertiary)}.branding-upload__actions{display:flex;align-items:center;gap:12px}.branding-upload__actions input[type=file]{padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-secondary)}.branding-actions{display:flex;justify-content:flex-end}@media (max-width: 1024px){.branding-page{grid-template-columns:1fr}.branding-page__panel{min-height:320px}.branding-row{grid-template-columns:1fr}.branding-upload{flex-direction:column;align-items:flex-start}}.card__title{font-weight:600;margin:0}.card__subtitle{color:var(--color-text-secondary);font-size:13px;margin:0}.card>*:not(.card__header){margin-bottom:16px}.card>*:not(.card__header):last-child{margin-bottom:0}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.stat{display:flex;flex-direction:column;gap:8px}.stat__label{font-size:12px;color:var(--color-text-secondary)}.stat__value{font-size:22px;font-weight:700}.stat__delta{font-size:12px;color:var(--color-success)}.badge{padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--color-bg-tertiary)}.badge-neutral{color:var(--color-text-secondary)}.badge-success{color:var(--color-success);background:var(--color-success-soft)}.badge-warning{color:var(--color-warning);background:var(--color-warning-soft)}.pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:var(--color-bg-tertiary);font-size:12px;color:var(--color-text-secondary)}.btn{border:1px solid transparent;border-radius:12px;padding:10px 16px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-primary{background:var(--color-primary);color:var(--color-primary-contrast);box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--color-primary-dark)}.btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.btn-secondary:hover{background:var(--color-bg-secondary)}.btn-ghost{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary)}.btn-ghost:hover{border-color:var(--color-primary);color:var(--color-text-primary)}.list{display:flex;flex-direction:column;gap:12px}.list-item{display:flex;justify-content:space-between;align-items:center;padding:16px;border-radius:var(--radius-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);gap:16px;min-width:0}.list-item>div:first-child{flex:1;min-width:0}.list-item__title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:4px}.list-item__meta{font-size:12px;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress{display:flex;flex-direction:column;gap:10px}.progress__label{display:flex;justify-content:space-between;color:var(--color-text-secondary);font-size:12px}.progress__track{height:8px;border-radius:999px;background:var(--color-bg-tertiary);overflow:hidden}.progress__fill{height:100%;background:var(--color-primary);border-radius:999px}.empty-state{border:1px dashed var(--color-border);border-radius:var(--radius-md);padding:28px;display:flex;gap:16px;align-items:center;background:var(--color-bg-secondary)}.empty-state__icon{width:28px;height:28px;color:var(--color-primary)}.empty-state__content h4{margin-bottom:6px}.empty-state__content p{color:var(--color-text-secondary);margin-bottom:12px}.skeleton{height:14px;background:linear-gradient(90deg,var(--color-skeleton-base) 25%,var(--color-skeleton-highlight) 50%,var(--color-skeleton-base) 75%);background-size:200% 100%;border-radius:999px;animation:shimmer 1.6s infinite}.chat{display:flex;flex-direction:column;gap:12px}.chat__bubble{padding:14px 16px;border-radius:16px;max-width:70%;word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;min-width:120px}.chat__bubble--coach{background:var(--color-bg-tertiary);align-self:flex-start}.chat__bubble--client{background:var(--color-primary-soft);align-self:flex-end}.chat__meta{font-size:11px;color:var(--color-text-tertiary);margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat__bubble>div:last-child{line-height:1.6;word-wrap:break-word}.table-wrapper{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:collapse;table-layout:auto;min-width:600px}.table th,.table td{text-align:left;padding:16px 12px;border-bottom:1px solid var(--color-border);font-size:13px;vertical-align:middle}.table th{color:var(--color-text-secondary);font-weight:600;white-space:nowrap;overflow:visible;text-overflow:clip}.table th:nth-child(1),.table td:nth-child(1){min-width:200px;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table th:nth-child(2),.table td:nth-child(2){width:120px;min-width:100px;white-space:nowrap}.table th:nth-child(3),.table td:nth-child(3){width:120px;min-width:100px;white-space:nowrap}.table th:nth-child(4),.table td:nth-child(4){width:120px;min-width:100px;white-space:nowrap;text-align:right}.table td:first-child{cursor:pointer}.admin-users{padding:0}.admin-users__tabs{display:flex;gap:20px;padding:18px 24px 0;border-bottom:1px solid var(--color-border)}.admin-users__tab{background:transparent;border:none;padding:12px 4px 16px;font-weight:600;color:var(--color-text-secondary);cursor:pointer;border-bottom:3px solid transparent}.admin-users__tab--active{color:var(--color-text-primary);border-bottom-color:var(--color-primary)}.admin-users__toolbar{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:24px;row-gap:12px;padding:20px 24px 24px;align-items:start}.admin-users__checkbox{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--color-text-secondary);grid-column:1 / 2;grid-row:1 / 2}.admin-users__filters,.admin-users__bulk{display:flex;align-items:center;gap:12px}.admin-users__filters{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px 16px;grid-column:1 / 2;grid-row:2 / 3}.admin-users__bulk{grid-column:2 / 3;grid-row:1 / 3;justify-self:end;align-self:start}.admin-users__select{min-width:150px;height:38px}@media (max-width: 1100px){.admin-users__toolbar{grid-template-columns:1fr}.admin-users__filters{grid-template-columns:repeat(2,minmax(160px,1fr))}.admin-users__bulk{grid-column:1 / 2;grid-row:3 / 4;justify-self:start}}@media (max-width: 720px){.admin-users__filters{grid-template-columns:1fr}.admin-users__select{width:100%}}.admin-users__table th{font-size:12px;text-transform:uppercase;letter-spacing:.02em;color:var(--color-text-secondary)}.admin-users__checkbox-cell{width:40px}.admin-users__name{display:flex;align-items:center;gap:12px}.admin-users__avatar{width:32px;height:32px;border-radius:50%;background:var(--color-bg-tertiary);display:grid;place-items:center;font-size:12px;font-weight:700;color:var(--color-text-primary)}.admin-users__actions{position:relative;text-align:right}.admin-users__actions-header{text-align:right}.admin-users__kebab{background:var(--color-bg-tertiary);border:none;width:32px;height:32px;border-radius:8px;cursor:pointer;color:var(--color-text-secondary)}.admin-users__menu{position:absolute;right:0;top:40px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 10px 30px #00000014;display:flex;flex-direction:column;min-width:160px;z-index:10}.admin-users__menu button{background:transparent;border:none;padding:10px 14px;text-align:left;cursor:pointer;color:var(--color-text-primary)}.admin-users__menu button:hover{background:var(--color-bg-tertiary)}.admin-users__empty{text-align:center;padding:32px;color:var(--color-text-secondary)}.admin-users__modal{display:flex;flex-direction:column;gap:12px}.admin-users__label{font-size:14px;font-weight:600;color:var(--color-text-primary)}.admin-users__modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:12px}.admin-users__table th:nth-child(1),.admin-users__table td:nth-child(1){width:40px;min-width:40px}.admin-users__table th:nth-child(2),.admin-users__table td:nth-child(2){min-width:200px}.admin-users__table th:nth-child(3),.admin-users__table td:nth-child(3){min-width:220px}.admin-users__table th:nth-child(4),.admin-users__table td:nth-child(4){min-width:160px}.admin-users__table th:nth-child(5),.admin-users__table td:nth-child(5),.admin-users__table th:nth-child(6),.admin-users__table td:nth-child(6),.admin-users__table th:nth-child(7),.admin-users__table td:nth-child(7){min-width:140px;white-space:nowrap}.admin-users__table th:nth-child(8),.admin-users__table td:nth-child(8){min-width:140px;white-space:nowrap}.admin-users__table th:nth-child(9),.admin-users__table td:nth-child(9){width:80px;min-width:80px;text-align:right}.legal-page{min-height:100vh;display:grid;grid-template-columns:1fr 1.2fr;background:var(--color-bg-secondary, #f8f9fa)}.legal-page__panel{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:var(--color-primary-contrast, #ffffff);padding:64px 56px;display:flex;align-items:flex-start}.legal-page__panel-content{display:flex;flex-direction:column;gap:16px;max-width:360px}.legal-page__panel-mark{width:64px;height:64px;border-radius:18px;background:#ffffff24;border:1px solid rgba(255,255,255,.22);display:grid;place-items:center;font-weight:700;letter-spacing:.04em;font-size:18px}.legal-page__panel h1{font-size:32px;margin:0}.legal-page__panel p{margin:0;opacity:.9;line-height:1.6}.legal-page__panel-footnote{margin-top:auto;font-size:12px;opacity:.7}.legal-page__content{display:flex;align-items:stretch;justify-content:center;padding:56px 48px}.legal-page__card{width:100%;max-width:820px;background:var(--color-bg-primary, #ffffff);border:1px solid #e6e7ee;border-radius:16px;box-shadow:0 16px 36px #0f172a0f;padding:0;display:flex;flex-direction:column;overflow:hidden}.legal-page__header{padding:28px 32px 18px;border-bottom:1px solid #ececf2;background:var(--color-bg-primary, #ffffff)}.legal-page__header h2{margin:0 0 8px;font-size:24px}.legal-page__header p{margin:0;color:var(--color-text-secondary)}.legal-page__body{border:1px solid #ececf2;border-radius:12px;background:#f7f8fb;padding:22px;max-height:46vh;overflow:auto;box-shadow:inset 0 1px 1px #0f172a0a;margin:0 32px 18px}.legal-page__html{color:var(--color-text-primary, #1a1a1a);font-size:14px;line-height:1.75}.legal-page__html h1,.legal-page__html h2,.legal-page__html h3{margin-top:20px}.legal-page__html ul,.legal-page__html ol{padding-left:20px}.legal-page__loading,.legal-page__empty{color:var(--color-text-secondary);font-size:14px}.legal-page__actions{display:flex;align-items:center;justify-content:space-between;padding:0 32px 28px;gap:16px}.legal-page__checkbox{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--color-text-secondary);background:transparent;border:1px solid transparent;border-radius:10px;padding:6px 0}.legal-page__checkbox input{width:18px;height:18px;accent-color:var(--color-primary)}.legal-page__checkbox span{color:var(--color-text-primary, #1a1a1a);font-weight:500}.legal-page__accept{min-width:140px;box-shadow:0 8px 16px #2563eb38;border-radius:10px}@media (max-width: 1024px){.legal-page{grid-template-columns:1fr}.legal-page__panel{display:none}.legal-page__content{padding:32px 20px}.legal-page__body{max-height:none}.legal-page__actions{flex-direction:column;align-items:stretch}}.input{width:100%;padding:12px 16px;border-radius:12px;border:1px solid var(--color-border);background:var(--color-bg-primary);font-size:13px;box-sizing:border-box}.input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px var(--color-primary-soft)}textarea.input{min-height:100px;resize:vertical;font-family:inherit;line-height:1.6}.two-col{display:grid;grid-template-columns:2fr 1fr;gap:18px}@media (max-width: 1200px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col{grid-template-columns:1fr}}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-wrap{word-wrap:break-word;word-break:break-word;overflow-wrap:break-word}.form-group{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.form-group:last-child{margin-bottom:0}.button-group{display:flex;gap:12px;align-items:center}.empty-state{padding:48px 24px;text-align:center}.empty-state__icon{margin-bottom:16px;opacity:.5}.modal-form{display:flex;flex-direction:column;gap:24px}.modal-form-section{display:flex;flex-direction:column;gap:16px;padding-top:16px;border-top:1px solid var(--color-border)}.modal-form-section:first-child{padding-top:0;border-top:none}@media (max-width: 900px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.page-header{flex-direction:column;align-items:flex-start}.grid-3,.grid-2{grid-template-columns:1fr}.table{font-size:12px;min-width:500px}.table th,.table td{padding:12px 8px}.table th:nth-child(1),.table td:nth-child(1){min-width:150px;max-width:200px}.table th:nth-child(2),.table td:nth-child(2),.table th:nth-child(3),.table td:nth-child(3),.table th:nth-child(4),.table td:nth-child(4){width:auto;min-width:80px}}@media (max-width: 640px){.table-wrapper{border-radius:var(--radius-md);box-shadow:inset 0 0 0 1px var(--color-border)}.table{min-width:450px;font-size:11px}.table th,.table td{padding:10px 6px}}*{margin:0;padding:0;box-sizing:border-box}html{height:100%;scroll-behavior:smooth}body{margin:0;height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"kern" 1}#root{height:100%}button,a,input,select,textarea{transition:all .2s cubic-bezier(.4,0,.2,1)}a{position:relative}a:hover{transition:all .2s cubic-bezier(.4,0,.2,1)}*:focus-visible{outline:2px solid var(--color-primary-main);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
