:root{--bg: #ffffff;--surface: #ffffff;--text: #111827;--muted: rgba(17, 24, 39, .65);--border: rgba(17, 24, 39, .12);--shadow: 0 2px 8px rgba(10, 22, 41, .1);--btn: #1676f3;--btnText: #ffffff;--shimmerBase: rgba(17, 24, 39, .08);--shimmerHi: rgba(255, 255, 255, .65)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:Noto Sans,system-ui,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}.page{min-height:100%;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.page input,.page textarea,.page select{-webkit-user-select:text;user-select:text}.app{min-height:100%}.navBar{position:sticky;top:0;z-index:10;height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;background:var(--surface);box-shadow:var(--shadow)}@media (max-width: 767px){.navBar{height:80px;padding:0 16px}}.tabs{display:flex;gap:8px;border-bottom:1px solid rgba(0,0,0,.08);padding-bottom:10px;margin-bottom:14px}.tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(0,0,0,.12);background:#fff;color:#111827;border-radius:999px;padding:8px 12px;font-weight:600;cursor:pointer}.tab--active{background:#0000000a}.dashGrid{display:grid;grid-template-columns:1fr;gap:12px}.dashStats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media (max-width: 640px){.dashStats{grid-template-columns:1fr}}.statCard{border:1px solid var(--border);border-radius:12px;padding:12px;background:var(--surface);box-shadow:var(--shadow)}.statLabel{font-size:12px;color:var(--muted);font-weight:700}.statValue{margin-top:6px;font-size:18px;font-weight:900}.dashBlock{border:1px solid var(--border);border-radius:12px;padding:12px;background:var(--surface);box-shadow:var(--shadow)}.dashCard{border:1px solid rgba(0,0,0,.08);border-radius:12px;padding:12px;background:#fff}.dashHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.dashTitle{font-weight:800}.dashMuted{color:#0009;font-size:13px}.dashList{display:grid;gap:10px}.dashRow{display:flex;justify-content:space-between;gap:12px;border:1px solid rgba(0,0,0,.06);background:#00000005;border-radius:10px;padding:10px}.dashMain{min-width:0}.dashRowTitle{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:640px}.dashRowSub{margin-top:2px;font-size:12px;color:#0009;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:640px}.dashPills{display:flex;align-items:center;gap:8px;flex-shrink:0}.pill{border:1px solid rgba(0,0,0,.1);background:#fff;border-radius:999px;padding:6px 10px;font-weight:700;font-size:12px}.pill--muted{color:#0009}.navBar__left{display:flex;align-items:center;gap:10px}.logoMark{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;background:var(--btn)}.brandText__title{font-weight:700;line-height:1.1}.brandText__sub{font-size:12px;color:var(--muted);margin-top:2px}.navLink{color:var(--btn);text-decoration:none;font-weight:600;padding:10px 12px;border-radius:10px}.navLink:hover{background:#1676f314}.layout{width:min(1440px,calc(100% - 36px));margin:18px auto 120px}.filters{display:flex;gap:10px;flex-wrap:wrap;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow)}.pillBtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:8px 12px;font-weight:700;cursor:pointer}.pillBtn:hover{background:#1676f314}.pillShimmer{width:120px;height:34px;border-radius:10px;background:var(--shimmerBase)}.pillShimmer:nth-child(2){width:92px}.pillShimmer:nth-child(3){width:110px}.pillShimmer:nth-child(4){width:86px}.pillShimmer:nth-child(5){width:126px}.pillShimmer:nth-child(6){width:102px}.pillShimmer:nth-child(7){width:78px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:14px}@media (max-width: 820px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 520px){.cards{grid-template-columns:1fr}}.cardShimmer{display:flex;gap:12px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow)}.courseCard{display:flex;flex-direction:column;gap:10px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow)}.courseThumb{width:100%;border-radius:12px;object-fit:cover;display:block;background:#0000000a}.courseMeta{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.courseTags{display:flex;flex-wrap:wrap;gap:6px}.tag{display:inline-flex;align-items:center;border:1px solid var(--border);background:#00000005;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:700;color:#000000a6}.courseTitle{margin:0;font-size:15px;line-height:1.25}.coursePrice{display:flex;align-items:baseline;gap:10px}.priceNow{font-weight:900}.priceOld{color:#0000008c;text-decoration:line-through;font-weight:700;font-size:12px}.courseCta{align-self:stretch;padding:9px 12px}.thumbShimmer{width:140px;height:90px;border-radius:12px;background:var(--shimmerBase)}.metaShimmer{flex:1;display:flex;flex-direction:column;gap:10px}.tagRow{display:flex;gap:8px}.tagShimmer{width:54px;height:16px;border-radius:999px;background:var(--shimmerBase)}.lineShimmer{height:14px;border-radius:999px;background:var(--shimmerBase)}.lineShortShimmer{height:14px;width:58%;border-radius:999px;background:var(--shimmerBase)}.info{margin-top:14px;padding:12px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;box-shadow:var(--shadow)}.title{margin:0;font-size:14px;font-weight:700;color:#166534}.muted{color:var(--muted)}.updatesEmpty{padding:8px;font-size:13px;color:#166534;opacity:.7}.updatesItem{padding:10px;border:1px solid rgba(0,0,0,.06);border-radius:12px;background:#00000005}.updatesItem__title{font-weight:800}.updatesItem__body{margin-top:4px;font-size:13px;line-height:1.35}.updatesItem__when{margin-top:6px;font-size:12px}.updatesList{display:grid;gap:8px;margin-top:8px}.updateRow{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid #bbf7d0;background:#fff;border-radius:8px}.updateTitle{font-weight:700;font-size:13px;color:#166534}.updateBody{color:#15803d;font-size:12px;overflow-wrap:anywhere}.updateMeta{color:#22c55e;font-size:11px}.shine{position:relative;overflow:hidden}.shine:after{content:"";position:absolute;top:0;left:-60%;width:60%;height:100%;background:linear-gradient(90deg,transparent,var(--shimmerHi),transparent);animation:shimmer 1.35s infinite}@keyframes shimmer{0%{transform:translate(0)}to{transform:translate(220%)}}.row{display:flex;gap:10px;align-items:center}.row--between{justify-content:space-between;align-items:flex-end}.grid{display:flex;flex-direction:column;gap:12px}.label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}.label--grow{flex:1}.input{padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);outline:none}.input:focus{border-color:#1676f3a6}.btn{padding:10px 12px;border-radius:12px;border:1px solid rgba(22,118,243,.55);background:var(--btn);color:var(--btnText);font-weight:700;cursor:pointer}.btn--ghost{background:transparent;color:var(--text);border-color:var(--border)}.btn:disabled{opacity:.55;cursor:not-allowed}.page .btn,.page .tab,.page .input{min-height:44px}.card{width:min(720px,calc(100% - 24px));margin:12px auto 24px;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:16px}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow)}.brand__title{font-weight:900;letter-spacing:.2px}.brand__subtitle{margin-top:2px;font-size:12px;color:var(--muted);font-weight:700}.nav__link{color:var(--btn);text-decoration:none;font-weight:800;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:#00000005}.nav__link:active{transform:translateY(1px)}.h1{margin:0 0 10px;font-size:18px}.h2{margin:0 0 10px;font-size:14px}.section{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.status{margin-top:10px;color:var(--muted);font-size:13px}.list{margin:8px 0 0 18px;color:var(--muted)}.footer{display:none}@media (max-width: 520px){.card{width:calc(100% - 20px);padding:14px;margin:10px auto 20px}.row{flex-direction:column;align-items:stretch}.row--between{align-items:stretch}.tabs{position:sticky;top:60px;z-index:15;background:var(--surface)}.tab{width:100%}.dashRow{flex-direction:column;align-items:stretch}.dashPills{justify-content:flex-start;flex-wrap:wrap}.dashRowTitle,.dashRowSub{white-space:normal;max-width:none}}.notifyBar{position:fixed;left:16px;right:16px;bottom:16px;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}.notifyBar__title{font-weight:800}.notifyBar__status{font-size:13px;color:var(--muted);margin-top:4px}.notifyBar__actions{display:flex;gap:10px;align-items:center}@media (max-width: 720px){.notifyBar{flex-direction:column;align-items:stretch}.notifyBar__actions{justify-content:flex-end}}.adminPage{min-height:100dvh;background:linear-gradient(180deg,#f8fafc,#eef2f7);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.adminPage input,.adminPage textarea,.adminPage select{-webkit-user-select:text;user-select:text}.adminPage--center{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}.adminHeader{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:12px;height:56px;padding:0 16px;background:#fff;border-bottom:1px solid rgba(0,0,0,.08);box-shadow:0 1px 3px #0000000a}.adminHeader__title{flex:1;font-size:17px;font-weight:800;text-align:center;margin:0}.adminHeader__spacer{width:32px}.adminBack{display:flex;align-items:center;justify-content:center;width:32px;height:32px;font-size:20px;color:var(--btn);text-decoration:none;border-radius:8px}.adminBack:active{background:#0000000d}.adminHeaderBtn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;font-size:18px;color:var(--btn);background:none;border:none;border-radius:8px;cursor:pointer}.adminHeaderBtn:active{background:#0000000d}.adminHeaderBtn:disabled{opacity:.4}.adminMain{padding:16px 16px 100px}.adminInput{display:block;width:100%;padding:12px 14px;font-size:15px;font-family:inherit;color:var(--text);background:#f8fafc;border:1px solid rgba(0,0,0,.1);border-radius:12px;outline:none;transition:border-color .15s,background .15s}.adminInput:focus{background:#fff;border-color:var(--btn)}.adminInput--large{font-size:24px;text-align:center;letter-spacing:8px;padding:16px}.adminInput--textarea{resize:vertical;min-height:80px}.adminLabel{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:var(--muted)}.adminLabel--half{flex:1;min-width:0}.adminRow{display:flex;gap:12px}.adminBtn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 20px;font-size:15px;font-weight:800;font-family:inherit;border-radius:14px;border:none;cursor:pointer;transition:transform .1s,opacity .1s}.adminBtn:active{transform:scale(.98)}.adminBtn:disabled{opacity:.5;cursor:not-allowed}.adminBtn--primary{background:var(--btn);color:#fff}.adminBtn--ghost{background:#1118270a;color:var(--text);border:1px solid var(--border)}.adminBtn--block{width:100%;margin-top:12px}.adminStatus{min-height:20px;margin-top:8px;font-size:13px;font-weight:600;text-align:center;color:var(--muted)}.adminStatus--error{color:#dc2626}.adminStatusTable{display:flex;flex-direction:column;gap:10px}.adminStatusRow{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.adminStatusKey{font-size:12px;font-weight:800;color:var(--muted);flex:0 0 110px}.adminStatusVal{font-size:12px;font-weight:700;color:var(--text);text-align:right;word-break:break-word;flex:1}.adminStatusVal--error{color:#dc2626}.adminHelpText{margin-top:10px;font-size:12px;color:var(--muted);text-align:center}.adminLogin{width:100%;max-width:340px;text-align:center}.adminLogin__logo{width:72px;height:72px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:900;color:#fff;background:var(--btn);border-radius:20px;box-shadow:0 4px 12px #1676f34d}.adminLogin__title{margin:0;font-size:24px;font-weight:900}.adminLogin__sub{margin:6px 0 24px;font-size:14px;color:var(--muted)}.adminLogin__form{background:#fff;border-radius:20px;padding:20px;box-shadow:0 4px 20px #00000014}.adminLogin__home{display:inline-block;margin-top:24px;font-size:14px;font-weight:700;color:var(--btn);text-decoration:none}.adminMenu{width:100%;max-width:400px;text-align:center}.adminMenu__header{margin-bottom:28px}.adminMenu__logo{width:64px;height:64px;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:900;color:#fff;background:var(--btn);border-radius:18px;box-shadow:0 4px 12px #1676f340}.adminMenu__title{margin:0;font-size:22px;font-weight:900}.adminMenu__nav{display:flex;flex-direction:column;gap:12px}.adminMenu__home{display:inline-block;margin-top:28px;font-size:14px;font-weight:700;color:var(--btn);text-decoration:none}.adminMenuCard{display:flex;align-items:center;gap:14px;padding:16px;background:#fff;border-radius:16px;text-decoration:none;color:inherit;box-shadow:0 2px 8px #0000000f;transition:transform .1s,box-shadow .1s}.adminMenuCard:active{transform:scale(.98);box-shadow:0 1px 4px #00000014}.adminMenuCard__icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:24px;background:#f0f7ff;border-radius:14px;flex-shrink:0}.adminMenuCard__content{flex:1;text-align:left;min-width:0}.adminMenuCard__title{font-size:16px;font-weight:800}.adminMenuCard__desc{margin-top:2px;font-size:13px;color:var(--muted)}.adminMenuCard__arrow{font-size:18px;color:var(--muted);flex-shrink:0}.adminStatsRow{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px}.adminStatCard{background:#fff;border-radius:16px;padding:16px;text-align:center;box-shadow:0 2px 8px #0000000f}.adminStatCard__value{font-size:28px;font-weight:900;color:var(--btn)}.adminStatCard__label{margin-top:4px;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.adminSection{background:#fff;border-radius:16px;padding:16px;margin-bottom:12px;box-shadow:0 2px 8px #0000000f}.adminSection__header{margin-bottom:12px}.adminSection__title{margin:0;font-size:15px;font-weight:800}.adminList{display:flex;flex-direction:column;gap:8px}.adminListItem{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;background:#f8fafc;border-radius:12px}.adminListItem--compact{padding:10px 12px}.adminListItem__main{flex:1;min-width:0;text-align:left}.adminListItem__title{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.adminListItem__sub{font-size:12px;color:var(--muted)}.adminListItem__badges{display:flex;gap:6px;flex-shrink:0}.adminBadge{display:inline-flex;align-items:center;justify-content:center;min-width:32px;padding:4px 8px;font-size:12px;font-weight:800;border-radius:8px}.adminBadge--yes{background:#dcfce7;color:#166534}.adminBadge--no{background:#fee2e2;color:#991b1b}.adminEmpty{padding:20px;text-align:center;font-size:14px;color:var(--muted)}@media (max-width: 400px){.adminRow{flex-direction:column}.adminStatsRow{grid-template-columns:1fr}}[hidden]{display:none!important}.adminApp{min-height:100dvh;background:#f1f5f9;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.adminApp input,.adminApp textarea,.adminApp select{-webkit-user-select:text;user-select:text}.adminLoginWrap{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;background:linear-gradient(180deg,#f8fafc,#e2e8f0)}.adminLogin{width:100%;max-width:360px}.adminPanel{display:flex;flex-direction:column;min-height:100dvh}@media (min-width: 768px){.adminPanel{max-width:600px;margin:0 auto;background:#fff;box-shadow:0 0 40px #00000014}.adminApp{background:#e2e8f0}.adminView{padding:24px}.adminCard,.adminSection{border-radius:20px;padding:20px}.adminTopBar{border-radius:0 0 16px 16px}}@media (min-width: 1024px){.adminPanel{max-width:720px}}.adminTopBar{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 16px;background:#fff;border-bottom:1px solid rgba(0,0,0,.08);box-shadow:0 1px 2px #0000000a}.adminTopBar__logo{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:900;color:#fff;background:var(--btn);border-radius:10px}.adminTopBar__title{font-size:16px;font-weight:800}.adminTopBar__home{font-size:13px;font-weight:700;color:var(--btn);text-decoration:none;padding:8px 12px;border-radius:8px;background:#1676f314}.adminTabs{display:flex;background:#fff;border-bottom:1px solid rgba(0,0,0,.08)}.adminTab{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 8px;font-family:inherit;font-size:11px;font-weight:700;color:var(--muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .15s,border-color .15s}.adminTab:active{background:#00000005}.adminTab--active{color:var(--btn);border-bottom-color:var(--btn)}.adminTab__icon{font-size:20px}.adminTab__text{text-transform:uppercase;letter-spacing:.5px}.adminView{flex:1;padding:16px 16px 32px;overflow-y:auto}.adminCard{background:#fff;border-radius:16px;padding:16px;box-shadow:0 2px 8px #0000000f;display:flex;flex-direction:column;gap:14px}.adminCard__title{font-size:15px;font-weight:800;color:var(--text);padding-bottom:10px;border-bottom:1px solid rgba(0,0,0,.06);margin-bottom:4px}.adminRefreshBtn{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:24px;background:#1676f31a;border:none;border-radius:12px;cursor:pointer;transition:transform .15s}.adminRefreshBtn:active{transform:scale(.95)}.adminRefreshBtn:disabled{opacity:.5}.adminStatCard--action{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}
