*{box-sizing:border-box;margin:0;padding:0}:root{--blue-900: #0f172a;--blue-800: #1e3a8a;--blue-700: #1d4ed8;--blue-600: #2563eb;--blue-500: #3b82f6;--blue-400: #60a5fa;--blue-100: #dbeafe;--blue-50: #eff6ff;--surface: rgba(255, 255, 255, .92);--surface-soft: rgba(255, 255, 255, .78);--text-main: #0f172a;--text-muted: #475569;--shadow: 0 10px 30px rgba(15, 23, 42, .18);--shadow-soft: 0 4px 16px rgba(37, 99, 235, .18);--app-bg-image: url(/backgrounds/bg.svg);--gap-xs: 8px;--gap-sm: 12px;--gap-md: 16px;--gap-lg: 24px;--content-max: 960px;--panel-max: 100%;--form-max: 100%;--radius-sm: 12px;--radius-md: 16px;--radius-lg: 20px;--tap-min: 44px;--btn-radius: 14px;--btn-border: 2px solid rgba(103, 232, 249, .72);--btn-border-hover: rgba(186, 230, 253, .95);--btn-primary-bg: linear-gradient(155deg, #0891b2 0%, #0e7490 42%, #155e75 100%);--btn-primary-shadow: 0 8px 22px rgba(8, 145, 178, .38), inset 0 1px 0 rgba(255, 255, 255, .22);--btn-primary-shadow-hover: 0 10px 28px rgba(8, 145, 178, .48), inset 0 1px 0 rgba(255, 255, 255, .28);--btn-secondary-bg: rgba(255, 255, 255, .9);--btn-secondary-border: rgba(14, 165, 233, .55);--btn-ghost-bg: rgba(255, 255, 255, .82);--btn-ghost-border: rgba(125, 211, 252, .45)}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body,#root{height:100%;min-height:100%;min-height:100dvh;min-height:var(--app-height, 100dvh);min-height:var(--tg-viewport-stable-height, 100dvh)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--text-main);overflow:hidden;background:linear-gradient(160deg,var(--blue-900) 0%,var(--blue-800) 45%,var(--blue-600) 100%)}.app-container{width:100%;height:100%;min-height:100dvh;min-height:var(--app-height, 100dvh);margin:0 auto;max-width:var(--content-max);box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;background:var(--app-bg-image) center / cover no-repeat,linear-gradient(160deg,#0f172ad1,#1e3a8ac7 45%,#2563ebb8)}.boot-screen{flex:1;min-height:var(--app-height, 100dvh);display:flex;align-items:center;justify-content:center;padding:24px 16px;padding-top:calc(24px + var(--content-safe-top, env(safe-area-inset-top, 0px)));padding-bottom:calc(24px + var(--content-safe-bottom, env(safe-area-inset-bottom, 0px)))}.boot-screen--loading{flex-direction:column;gap:16px;text-align:center}.boot-panel{width:100%;max-width:420px;padding:24px 20px;text-align:center;display:flex;flex-direction:column;gap:14px}.boot-panel--loading{background:transparent;border:none;box-shadow:none;backdrop-filter:none}.boot-panel__title{font-size:22px;font-weight:700;color:var(--text-main)}.boot-panel__text{font-size:14px;line-height:1.5;color:var(--text-muted)}.boot-panel__hint{font-size:12px;line-height:1.45;color:#ffffffd1}.boot-panel__link{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.boot-panel--loading .boot-panel__text{color:#ffffffe6}.boot-panel__text--loading{margin:0;max-width:280px;color:#ffffffe6}#root{display:flex;flex-direction:column;overflow:hidden}.app-container--desktop{box-shadow:0 24px 80px #0f172a73}.screen{min-height:100%;min-height:var(--app-height, 100vh)}.screen--center{display:flex;align-items:center;justify-content:center}.boot-loader{width:36px;height:36px;flex-shrink:0;border:3px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;animation:boot-spin .8s linear infinite}@keyframes boot-spin{to{transform:rotate(360deg)}}.boot-error{margin:calc(8px + var(--content-safe-top, env(safe-area-inset-top, 0px))) auto 0;max-width:min(520px,calc(100% - 24px));padding:10px 12px;border-radius:var(--radius-sm);background:#fef2f2f2;color:#b91c1c;font-size:13px;text-align:center;box-shadow:var(--shadow-soft)}.page{flex:1;min-height:0;display:flex;flex-direction:column}.page__content{flex:1;min-height:0;padding:var(--gap-sm);padding-top:calc(var(--gap-sm) + var(--content-safe-top, env(safe-area-inset-top, 0px)));padding-bottom:calc(var(--gap-sm) + var(--content-safe-bottom, env(safe-area-inset-bottom, 0px)));padding-left:calc(var(--gap-sm) + var(--content-safe-left, env(safe-area-inset-left, 0px)));padding-right:calc(var(--gap-sm) + var(--content-safe-right, env(safe-area-inset-right, 0px)));overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;display:block;-webkit-overflow-scrolling:touch}.page__inner{width:100%;max-width:var(--content-max);margin:0 auto;display:flex;flex-direction:column;gap:var(--gap-sm);padding-bottom:var(--gap-md)}.page--swipeable{touch-action:pan-y}.section-page{width:100%;max-width:var(--panel-max);margin:0 auto;display:flex;flex-direction:column;gap:var(--gap-sm)}.card{background:var(--surface);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.55);border-radius:var(--radius-md);box-shadow:var(--shadow-soft)}.btn{border:var(--btn-border);border-radius:var(--btn-radius);font-size:15px;font-weight:600;cursor:pointer;backdrop-filter:blur(8px);min-height:var(--tap-min);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,opacity .15s ease}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--btn-primary-bg);color:#fff;box-shadow:var(--btn-primary-shadow)}.btn--primary:hover:not(:disabled){border-color:var(--btn-border-hover);box-shadow:var(--btn-primary-shadow-hover)}.btn--secondary{background:var(--btn-secondary-bg);color:var(--text-main);border:2px solid var(--btn-secondary-border);box-shadow:0 4px 14px #0e749024}.btn--secondary:hover:not(:disabled){border-color:var(--btn-border-hover);box-shadow:0 6px 18px #0e749033}.btn--ghost{background:var(--btn-ghost-bg);color:var(--text-main);border:2px solid var(--btn-ghost-border);box-shadow:none}.btn--ghost:hover:not(:disabled){border-color:var(--btn-secondary-border);background:#fffffff5}.btn--block{width:100%}.btn--plain{border:none;border-radius:var(--radius-sm);background:var(--surface-soft);color:var(--text-main);box-shadow:none;backdrop-filter:none}.menu{display:flex;flex-direction:column;gap:var(--gap-sm);width:100%;max-width:var(--panel-max);margin:0 auto}.workshop-select{margin-bottom:10px;position:sticky;top:0;z-index:10}.workshop-select__input{width:100%;font-weight:600}.workshop-select__error{display:block;margin-top:6px;font-size:12px;color:#b91c1c}.form-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}.form-actions .btn{flex:1 1 140px}.workshops-admin-page{gap:var(--gap-md)}.workshops-admin-list{list-style:none;display:flex;flex-direction:column;gap:10px}.workshop-admin-item{width:100%;padding:16px;text-align:left;cursor:pointer;border:1px solid rgba(255,255,255,.65);transition:transform .15s ease,box-shadow .15s ease}.workshop-admin-item:active{transform:scale(.99)}.workshop-admin-item--inactive{opacity:.72}.workshop-admin-item__head{display:flex;align-items:center;justify-content:space-between;gap:10px}.workshop-admin-item__name{font-size:16px;font-weight:700;color:var(--text-main)}.workshop-admin-item__badge{font-size:11px;font-weight:700;color:#92400e;background:#fef3c7;padding:3px 8px;border-radius:999px}.workshop-admin-item__address{margin-top:6px;font-size:13px;color:var(--text-muted);line-height:1.45}.workshop-admin-item__edit{display:block;margin-top:10px;font-size:12px;font-weight:600;color:#0e7490}.workshop-picker__item--toggle{cursor:pointer}.menu__grid{list-style:none;width:100%;display:grid;grid-template-columns:1fr;gap:10px}.menu-tile{--tile-accent: #0ea5e9;--tile-accent-soft: rgba(14, 165, 233, .14);--tile-accent-border: rgba(14, 165, 233, .35);width:100%;min-height:76px;display:flex;align-items:center;gap:14px;padding:14px 16px;text-align:left;cursor:pointer;border:1px solid rgba(255,255,255,.78);border-radius:18px;background:linear-gradient(145deg,#fffffffa,#f8fafceb);backdrop-filter:blur(16px);box-shadow:0 6px 20px #0f172a1a,inset 0 1px #fff;position:relative;overflow:hidden;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.menu-tile:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:4px;border-radius:0 4px 4px 0;background:var(--tile-accent)}.menu-tile:active{transform:scale(.985)}.menu-tile__icon{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:24px;line-height:1;border-radius:14px;background:var(--tile-accent-soft);border:1px solid var(--tile-accent-border);margin-left:6px}.menu-tile__body{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.menu-tile__label{font-size:15px;font-weight:700;line-height:1.25;color:var(--text-main)}.menu-tile__desc{font-size:12px;font-weight:500;line-height:1.35;color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.menu-tile__chevron{flex-shrink:0;font-size:22px;font-weight:400;line-height:1;color:var(--tile-accent);opacity:.85}.menu-tile--workshop{--tile-accent: #0284c7;--tile-accent-soft: rgba(2, 132, 199, .12);--tile-accent-border: rgba(2, 132, 199, .28)}.menu-tile--cyan{--tile-accent: #0891b2;--tile-accent-soft: rgba(8, 145, 178, .14);--tile-accent-border: rgba(8, 145, 178, .32)}.menu-tile--amber{--tile-accent: #d97706;--tile-accent-soft: rgba(245, 158, 11, .16);--tile-accent-border: rgba(245, 158, 11, .32)}.menu-tile--sky{--tile-accent: #0284c7;--tile-accent-soft: rgba(14, 165, 233, .14);--tile-accent-border: rgba(14, 165, 233, .32)}.menu-tile--emerald{--tile-accent: #059669;--tile-accent-soft: rgba(16, 185, 129, .14);--tile-accent-border: rgba(16, 185, 129, .32)}.menu-tile--teal{--tile-accent: #0d9488;--tile-accent-soft: rgba(20, 184, 166, .14);--tile-accent-border: rgba(20, 184, 166, .32)}.menu-tile--violet{--tile-accent: #7c3aed;--tile-accent-soft: rgba(139, 92, 246, .14);--tile-accent-border: rgba(139, 92, 246, .32)}.menu-tile--indigo{--tile-accent: #4f46e5;--tile-accent-soft: rgba(99, 102, 241, .14);--tile-accent-border: rgba(99, 102, 241, .32)}.menu-tile--slate{--tile-accent: #475569;--tile-accent-soft: rgba(100, 116, 139, .14);--tile-accent-border: rgba(100, 116, 139, .28)}@media(hover:hover)and (pointer:fine){.menu-tile:hover{border-color:var(--tile-accent-border);box-shadow:0 8px 28px #0f172a24,inset 0 1px #fff;transform:translateY(-1px)}}.back-btn{align-self:flex-start;margin-bottom:var(--gap-xs);padding:10px 16px;font-size:14px;min-height:40px}.section-dev{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--gap-sm);padding:var(--gap-lg) var(--gap-md);text-align:center;width:100%}.section-dev.card{flex:1;min-height:200px}.section-dev__icon{font-size:clamp(36px,8vw,52px);line-height:1}.section-dev__text{font-size:clamp(14px,3.5vw,16px);font-weight:600;line-height:1.45;color:var(--text-main);max-width:28ch}.form-card{display:flex;flex-direction:column;gap:var(--gap-md);padding:var(--gap-md);width:100%;max-width:var(--form-max);margin:0 auto}.form-field{display:flex;flex-direction:column;gap:var(--gap-xs);font-size:14px;font-weight:600;color:var(--text-main)}.form-input,.form-select{width:100%;min-height:var(--tap-min);padding:12px 14px;border:2px solid rgba(125,211,252,.4);border-radius:var(--radius-sm);background:#fffffff5;color:var(--text-main);font-size:16px;line-height:1.4;transition:border-color .15s ease,box-shadow .15s ease}.form-input:focus,.form-select:focus{outline:none;border-color:#0ea5e9a6;box-shadow:0 0 0 3px #7dd3fc59}.form-select{cursor:pointer;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#0e7490 50%),linear-gradient(135deg,#0e7490 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% + 2px),calc(100% - 12px) calc(50% + 2px);background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:36px}.form-submit{margin-top:4px;padding:14px 16px}.form-alert{padding:10px 12px;border-radius:var(--radius-sm);font-size:13px;line-height:1.45}.form-alert--error{background:#fef2f2;color:#b91c1c;border:1px solid rgba(248,113,113,.35)}.form-alert--success{background:#ecfdf5;color:#166534;border:1px solid rgba(52,211,153,.35)}.form-hint{font-size:13px;color:var(--text-muted);line-height:1.45}.workshop-page{gap:var(--gap-md)}.workshop-page__intro{padding:var(--gap-md)}.workshop-page__label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:6px}.workshop-page__title{font-size:clamp(18px,4vw,22px);font-weight:700;line-height:1.3;color:var(--text-main)}.workshop-page__address{margin-top:6px;font-size:14px;color:var(--text-muted);line-height:1.45}.workshop-page__empty{font-size:14px;line-height:1.5;color:var(--text-muted)}.workshop-list__title{font-size:14px;font-weight:700;color:#ffffffeb;margin-bottom:10px}.workshop-list__items{list-style:none;display:flex;flex-direction:column;gap:10px}.workshop-card{width:100%;padding:14px 16px;text-align:left;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.workshop-card--active{border:2px solid rgba(14,165,233,.65);box-shadow:0 8px 24px #0891b238}.workshop-card__head{display:flex;align-items:center;justify-content:space-between;gap:10px}.workshop-card__name{font-size:15px;font-weight:700;color:var(--text-main)}.workshop-card__badge{font-size:11px;font-weight:700;color:#155e75;background:#cffafe;border:1px solid rgba(14,165,233,.35);padding:3px 8px;border-radius:999px;flex-shrink:0}.workshop-card__address{margin-top:6px;font-size:13px;color:var(--text-muted);line-height:1.45}.workshop-admin{margin-top:4px}.workshop-admin__title{font-size:16px;font-weight:700;color:var(--text-main)}.workshop-picker{display:flex;flex-direction:column;gap:8px}.workshop-picker__item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:2px solid rgba(125,211,252,.35);border-radius:var(--radius-sm);background:#fffffff5;cursor:pointer}.workshop-picker__item input{margin-top:3px;width:18px;height:18px;flex-shrink:0;accent-color:#0e7490}.workshop-picker__text{display:flex;flex-direction:column;gap:2px;min-width:0}.workshop-picker__name{font-size:14px;font-weight:600;color:var(--text-main)}.workshop-picker__address{font-size:12px;color:var(--text-muted);line-height:1.35}.team__workshops{font-size:12px;color:#0e7490;line-height:1.35}.team__controls{display:flex;flex-direction:column;gap:10px;width:100%;flex:1 1 180px}.team__item--stacked{flex-direction:column;align-items:stretch}.team__list{list-style:none;display:flex;flex-direction:column;gap:10px;width:100%}.team__item{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--gap-sm);padding:14px 16px}.team__info{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 160px}.team__name{font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team__username{font-size:13px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team__role-select{flex:1 1 140px;max-width:100%;min-height:var(--tap-min);padding:10px 12px;border:2px solid rgba(125,211,252,.4);border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;background:#fff;color:var(--text-main)}.team__role-select--manager{background:var(--blue-50);color:var(--blue-700);border-color:#3b82f659}.team__role-select--master{background:#ecfdf5;color:#166534;border-color:#34d39959}.team-message{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;padding:var(--gap-lg) var(--gap-md);color:#ffffffeb;font-size:14px;line-height:1.5}.employees__add-btn{padding:15px 16px;max-width:var(--form-max);margin:0 auto;width:100%}.employees__status{font-size:12px;color:#b45309}.username-suggest{position:relative;width:100%}.username-suggest__list{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 6px);list-style:none;background:#fffffffa;border:2px solid rgba(125,211,252,.45);border-radius:var(--radius-md);box-shadow:var(--shadow);overflow:hidden;max-height:min(240px,40vh);overflow-y:auto}.username-suggest__item{width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:12px 14px;text-align:left;border-radius:0;border:none;border-bottom:1px solid rgba(125,211,252,.25);min-height:var(--tap-min)}.username-suggest__item:last-child{border-bottom:none}.username-suggest__item:hover:not(:disabled){background:#ecfefff2}.username-suggest__name{font-size:14px;font-weight:600;color:var(--text-main)}.username-suggest__username{font-size:13px;color:#0e7490}.username-suggest__tag{margin-left:auto;font-size:11px;font-weight:600;color:#155e75;background:#cffafe;padding:3px 8px;border-radius:999px;border:1px solid rgba(14,165,233,.35)}.username-suggest__hint{display:block;margin-top:6px;font-size:12px;color:var(--text-muted)}@media(max-width:359px){.page__content{padding:10px;padding-top:calc(10px + var(--content-safe-top, env(safe-area-inset-top, 0px)));padding-bottom:calc(10px + var(--content-safe-bottom, env(safe-area-inset-bottom, 0px)))}.menu__btn{min-height:52px;padding:12px 14px;gap:10px}.menu__label{font-size:14px}.team__item{flex-direction:column;align-items:stretch}.team__role-select{width:100%}.form-card{padding:14px}.menu-tile{min-height:68px;padding:12px 14px;gap:12px}.menu-tile__icon{width:44px;height:44px;font-size:22px}.menu-tile__label{font-size:14px}}@media(min-width:480px){:root{--panel-max: 640px;--form-max: 520px}.page__content{padding:var(--gap-md) 20px;padding-top:calc(var(--gap-md) + var(--content-safe-top, env(safe-area-inset-top, 0px)));padding-bottom:calc(var(--gap-md) + var(--content-safe-bottom, env(safe-area-inset-bottom, 0px)))}.menu__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:640px;margin:0 auto}.menu-tile{min-height:108px;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px 14px 16px;gap:10px}.menu-tile:before{inset:0 14px auto;width:auto;height:4px;border-radius:0 0 4px 4px}.menu-tile__icon{width:54px;height:54px;font-size:28px;margin:2px 0 0}.menu-tile__body{align-items:center}.menu-tile__desc{-webkit-line-clamp:2}.menu-tile__chevron{display:none}.form-card{padding:20px 22px;border-radius:var(--radius-lg)}.section-dev.card{max-width:420px;margin:auto;min-height:240px}}@media(min-width:768px){:root{--content-max: 960px;--panel-max: 720px;--form-max: 560px}body.app-body--desktop{overflow:auto;padding:24px 16px}.app-container--desktop{min-height:calc(100vh - 48px);min-height:calc(var(--app-height, 100vh) - 48px);border-radius:24px;overflow:hidden}.page__content{padding:var(--gap-lg) 28px;padding-top:calc(var(--gap-lg) + var(--content-safe-top, env(safe-area-inset-top, 0px)));padding-bottom:calc(var(--gap-lg) + var(--content-safe-bottom, env(safe-area-inset-bottom, 0px)))}.menu__grid{grid-template-columns:repeat(3,1fr);gap:var(--gap-md);max-width:720px}.menu-tile{min-height:118px;border-radius:20px}.menu-tile__label{font-size:14px}.form-input,.form-select{font-size:15px;padding:13px 16px}.team__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap-sm)}.team__item{flex-direction:column;align-items:stretch;height:100%}.team__role-select{width:100%;margin-top:auto}.section-dev.card{max-width:480px;padding:48px 36px}.back-btn{margin-bottom:var(--gap-sm)}}@media(min-width:1024px){:root{--panel-max: 780px;--form-max: 600px}body.app-body--desktop{padding:32px 24px}.app-container--desktop{min-height:calc(100vh - 64px);border-radius:28px}.menu__grid{max-width:780px;gap:18px}.menu-tile{min-height:128px}.menu-tile__icon{width:56px;height:56px;font-size:28px}.menu-tile__label{font-size:15px}.form-card{padding:24px 28px}.team__list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}@media(min-width:1280px){.team__list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(hover:hover)and (pointer:fine){.page__content{scrollbar-width:thin;scrollbar-color:rgba(125,211,252,.55) transparent}.page__content::-webkit-scrollbar{width:8px}.page__content::-webkit-scrollbar-thumb{background:#7dd3fc8c;border-radius:999px}}
