/* Floating graphite navigation, shared by trainer and administrator. */
:root{--ui-ease:cubic-bezier(.22,1,.36,1)}
.bottom-nav,.view-switch{border-radius:999px;background:linear-gradient(155deg,#ffffff20,#ffffff04 48%,#ffffff0d),#242628b8;border:1px solid #ffffff38;border-top-color:#ffffff70;box-shadow:inset 0 1px 2px #ffffff30,inset 0 -1px 2px #0006,0 16px 48px #0005;backdrop-filter:blur(30px) saturate(135%);-webkit-backdrop-filter:blur(30px) saturate(135%)}
.bottom-nav{width:440px;max-width:calc(100% - 32px);padding:8px;gap:8px;bottom:calc(16px + var(--safe-bottom))}
.bottom-nav button{flex:1;min-width:0;min-height:84px;border-radius:999px;gap:7px;font-size:16px;font-weight:600;color:#e0e2e1;padding:12px 18px;position:relative;transition:background 220ms var(--ui-ease),box-shadow 220ms var(--ui-ease),color 180ms,transform 180ms var(--ui-ease)}
.bottom-nav svg{width:32px;height:32px;stroke-width:1.8}
.bottom-nav button[aria-current=page],.view-switch button[aria-pressed=true]{background:linear-gradient(145deg,#e1ff9830,#d3ff590a),#454b3d70;color:var(--lime);border-color:#ddffb38a;box-shadow:inset 0 1px 2px #eeffd387,0 4px 18px #0004}
.view-switch{padding:6px;gap:6px;flex-shrink:0}.view-switch button{min-height:74px;min-width:105px;border:1px solid transparent;border-radius:999px;font-size:16px;font-weight:600;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#e0e2e1;transition:background 200ms,color 180ms,transform 160ms}
.view-switch button:before{content:'';display:block;width:26px;height:26px;background:currentColor;mask:var(--nav-icon) center/contain no-repeat;-webkit-mask:var(--nav-icon) center/contain no-repeat}
.view-switch button[data-mode=day]{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Crect x='3' y='5' width='18' height='16' rx='4'/%3E%3Cpath d='M7 3v5m10-5v5M3 11h18m-13 5h8'/%3E%3C/svg%3E")}
.view-switch button[data-mode=week]{--nav-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Crect x='3' y='4' width='18' height='17' rx='4'/%3E%3Cpath d='M3 10h18M9 10v11m6-11v11M7 2v5m10-5v5'/%3E%3C/svg%3E")}
.admin-controls{gap:14px;padding:18px;border-radius:32px}.admin-controls input,.admin-controls select{height:56px;font-size:16px;border-radius:18px}.admin-controls .icon-btn{width:52px;height:52px;border-radius:50%}.range-controls{gap:8px}.range-controls input{width:158px}.range-controls .btn{min-height:52px;font-size:14px;border-radius:99px}.search-label{min-width:200px}.admin-top .btn{min-height:48px;border-radius:99px}.admin-heading .btn{border-radius:99px;padding-inline:26px}.schedule-table-wrap{max-height:calc(100svh - 355px)}
.field input,.field select,.field textarea{border-radius:18px;min-height:58px;padding:15px;background:#161b1c8a;transition:border-color 180ms,box-shadow 180ms}.field input:focus,.field select:focus,.field textarea:focus{border-color:#d3ff5980;box-shadow:0 0 0 4px #d3ff5910}.field small{font-size:13px;line-height:1.55}.field select option{background:#262c2d}.field input::placeholder,.field textarea::placeholder{color:#aeb7b8;opacity:1}
.quick-choices{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 18px}.quick-choices button{min-height:44px;padding:9px 16px;border-radius:999px;background:#ffffff09;border:1px solid #ffffff29;color:#e7ebdf;font-size:14px}.quick-choices button:hover{border-color:#d3ff5970;color:var(--lime)}
button{transition:transform 160ms var(--ui-ease),background-color 180ms,border-color 180ms}button:active:not(:disabled){transform:scale(.97)}
dialog[open]{animation:glass-enter 220ms var(--ui-ease)}dialog{border-radius:32px;background-color:#23292be8;scrollbar-width:thin;overscroll-behavior:contain}dialog::backdrop{background:#080b0f99}.dialog-head .icon-btn{width:48px;height:48px}.dialog-head h2{line-height:1.2}.dialog-actions .btn{flex:1}.schedule-cell{transition:background-color 160ms}.schedule-table-wrap:focus-visible{outline-offset:5px}
@keyframes glass-enter{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@media(hover:hover){.bottom-nav button:hover,.view-switch button:hover{background-color:#ffffff0c}.btn:not(:disabled):hover{filter:brightness(1.05)}}
@media(max-width:1100px){.admin-controls .view-switch{order:-1}.search-label{flex:1 1 220px}}
@media(max-width:760px){.bottom-nav{width:390px;bottom:calc(10px + var(--safe-bottom));padding:6px;gap:6px}.bottom-nav button{min-height:76px;font-size:14px;padding:10px 16px}.bottom-nav svg{width:30px;height:30px}.confirm-panel{position:static;margin-top:18px;padding:0;background:none;border:0;box-shadow:none;backdrop-filter:none}.app-shell{padding-bottom:calc(140px + var(--safe-bottom))}.admin-controls{padding:12px;gap:12px;border-radius:28px}.admin-controls .view-switch{order:-2;width:100%;flex:1 1 100%}.view-switch button{flex:1;min-height:76px;font-size:16px}.search-label{flex:1 1 100%;order:-1}.admin-controls select{flex:1;max-width:calc(100% - 64px)}.range-controls{flex:1 1 100%;order:2;gap:4px}.range-controls input{width:142px;padding:0 8px}.range-controls .icon-btn{width:44px;height:48px}.range-controls .btn{padding:8px;font-size:12px}.admin-shell{padding-inline:14px}.admin-heading h1{font-size:36px}.schedule-table-wrap{max-height:65svh}.table-caption{font-size:13px}dialog{max-height:calc(100dvh - 28px);padding:22px}.field-row{gap:10px}.field input[type=time]{padding-inline:10px}.welcome{margin-top:32px}.admin-top .brand{width:140px}}
@media(max-width:360px){.range-controls input{width:128px}.range-controls .icon-btn{width:38px}.admin-heading h1{font-size:32px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){.glass,.bottom-nav,.view-switch,dialog{background:#25292b;backdrop-filter:none;-webkit-backdrop-filter:none}}

/* Compact scale; retain comfortable touch targets and 16px form inputs. */
body{font-size:14px}.app-shell{padding-top:calc(22px + var(--safe-top));padding-inline:28px}.brand{width:145px}.topbar{padding-bottom:16px}.avatar{width:42px;height:42px;font-size:13px}.greeting{margin:20px 0}.greeting h1,.profile-page .greeting h1{font-size:34px}.status-pill{font-size:11px;padding:7px 11px}.workspace{gap:24px;grid-template-columns:minmax(0,1fr) 280px}.month{font-size:13px}.timezone{font-size:12px}.section-heading{margin-bottom:14px}.week{gap:7px;margin-bottom:18px}.day{min-height:76px;border-radius:18px;padding:10px 0 7px}.day span{font-size:11px}.day strong{font-size:26px}.day-tools h3{font-size:14px}.text-btn{font-size:12px}.timeline{gap:11px}.session-row{grid-template-columns:50px minmax(0,1fr);gap:12px}.session-time{font-size:13px;padding-top:20px}.session-time small{font-size:11px}.session-card{min-height:114px;padding:18px 20px;border-radius:20px}.session-card strong{font-size:17px}.session-card p{font-size:12px;margin-top:8px}.kind-label{font-size:10px}.duration{font-size:11px}.card-top{margin-bottom:8px}.add-btn{margin-left:62px;width:calc(100% - 62px);min-height:48px;font-size:14px;border-radius:18px}.day-summary{padding:20px 0;border-radius:20px}.day-summary small{font-size:12px}.metric{font-size:36px}.btn{min-height:46px;font-size:14px;padding:10px 16px;border-radius:16px}.side-foot{font-size:11px}.bottom-nav{width:340px;padding:6px;gap:6px}.bottom-nav button{min-height:62px;font-size:12px;padding:8px 14px;gap:4px}.bottom-nav svg{width:25px;height:25px}.profile-card{padding:22px;margin-top:18px}.profile-heading strong{font-size:17px}.profile-heading small{font-size:12px}.profile-card dl>div{font-size:13px;padding:15px 0}.profile-note{font-size:12px}.toggle-label{font-size:14px}.field{font-size:13px;gap:6px;margin-bottom:13px}.field small{font-size:11px}.field input,.field select,.field textarea{min-height:48px;padding:11px 13px;border-radius:14px}.field textarea{min-height:70px}.quick-choices{gap:6px;margin-bottom:14px}.quick-choices button{font-size:12px;min-height:44px;padding:8px 13px}dialog{padding:22px;border-radius:26px}.dialog-head{margin-bottom:18px}.dialog-head h2{font-size:25px}.error{font-size:12px}.welcome{padding:28px}.welcome h1,.admin-login h1{font-size:32px}.empty h3{font-size:18px}.empty p{font-size:13px}
.admin-shell{padding:22px 28px 36px}.admin-top{padding-bottom:18px}.admin-heading{margin:24px 0 20px}.admin-heading h1{font-size:34px}.admin-heading .btn{padding-inline:20px}.admin-controls{padding:12px;gap:10px;border-radius:26px}.admin-controls input,.admin-controls select{height:46px;font-size:14px;border-radius:15px}.admin-controls .icon-btn{height:44px;width:44px}.range-controls{gap:5px}.range-controls input{width:145px}.range-controls .btn{min-height:44px;font-size:12px}.view-switch{padding:5px;gap:4px}.view-switch button{min-height:58px;min-width:85px;font-size:13px;padding:8px 13px;gap:3px}.view-switch button:before{width:22px;height:22px}.table-caption{margin:18px 2px 12px;font-size:12px}.schedule-table thead th{padding:14px 12px}.schedule-table tbody th{padding:18px 14px}.schedule-table tbody th>strong{font-size:14px}.schedule-cell{min-height:156px;padding:14px 10px}.schedule-table-wrap{max-height:calc(100svh - 300px)}
@media(max-width:760px){.app-shell{padding:calc(16px + var(--safe-top)) 14px calc(110px + var(--safe-bottom))}.brand{width:130px}.greeting h1,.profile-page .greeting h1{font-size:30px}.greeting{margin:18px 0}.greeting>.status-pill{font-size:10px}.workspace{display:block}.month{font-size:12px}.day{min-height:70px;border-radius:15px}.day strong{font-size:24px}.day span{font-size:10px}.session-row{grid-template-columns:43px minmax(0,1fr);gap:9px}.session-card{padding:16px;min-height:110px;border-radius:18px}.session-card strong{font-size:16px}.session-card p{font-size:11px}.session-time{font-size:12px}.kind-label{font-size:9px}.duration{font-size:10px}.add-btn{margin-left:52px;width:calc(100% - 52px);font-size:13px}.bottom-nav{width:320px}.bottom-nav button{min-height:58px;font-size:12px}.bottom-nav svg{width:24px;height:24px}.confirm-panel .btn{min-height:46px;font-size:13px}.profile-card{padding:18px}.profile-heading strong{font-size:15px}.profile-card h2{font-size:24px}.admin-shell{padding:16px 12px 30px}.admin-top .brand{width:126px}.admin-top .btn{font-size:12px;min-height:44px}.admin-heading{margin:20px 0 16px}.admin-heading h1{font-size:29px;margin-bottom:16px}.admin-heading .btn{min-height:44px;font-size:13px}.admin-controls{padding:10px;gap:9px;border-radius:24px}.view-switch button{min-height:58px;font-size:13px}.admin-controls select{max-width:calc(100% - 54px)}.range-controls{gap:3px}.range-controls input{width:132px}.range-controls .btn{font-size:11px;padding:8px}.range-controls .icon-btn{width:40px}.table-caption{font-size:11px}.schedule-table-wrap{max-height:65svh}.schedule-table tbody th>strong{font-size:12px}.schedule-table tbody th{padding:15px 10px}.schedule-table.admin-day .schedule-cell{padding:14px 10px}.schedule-table thead strong{font-size:15px}dialog{padding:20px}.dialog-head h2{font-size:24px}.welcome h1{font-size:30px}}

/* Keep native time controls inside the editor on narrow Telegram screens. */
#session-form .field-row{grid-template-columns:repeat(2,minmax(0,1fr))}
#session-form .field-row>.field{min-width:0}
#session-form input[type=time]{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
@media(max-width:520px){#session-form .field-row{grid-template-columns:minmax(0,1fr);gap:0}}
