.auth-page{min-height:calc(100vh - 170px);display:grid;place-items:center;padding:42px 18px;background:#292929}
.auth-card{width:min(100%,460px);background:#fff;border:1px solid #e8e8ec;border-radius:24px;padding:34px;box-shadow:0 20px 55px rgba(25,25,35,.08)}
.auth-card-wide{width:min(100%,700px)}
.auth-icon{width:52px;height:52px;border-radius:16px;background:#fff0f0;color:#c00000;display:grid;place-items:center;font-size:23px;margin-bottom:18px}
.auth-kicker{font-size:12px;font-weight:800;letter-spacing:1.5px;color:#c00000}
.auth-card h1,.dash-heading h1{margin:7px 0 8px;font-size:30px;letter-spacing:-.8px;color:#151515}
.auth-subtitle{margin:0 0 25px;color:#747474;font-size:14px;line-height:1.6}
.auth-field{margin-bottom:17px}.auth-field label,.video-form-grid label{display:block;font-size:12px;font-weight:750;color:#424242;margin:0 0 7px}
.auth-input{height:48px;border:1px solid #dedee3;border-radius:12px;display:flex;align-items:center;padding:0 13px;gap:10px;transition:.2s;background:#fff}
.auth-input:focus-within{border-color:#d00000;box-shadow:0 0 0 4px rgba(208,0,0,.07)}
.auth-input i{color:#999}.auth-input input{border:0;outline:0;width:100%;height:100%;font-size:14px}
.auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.auth-field.full{grid-column:1/-1}
.auth-submit{width:100%;height:49px;border:0;border-radius:12px;background:#c00000;color:#fff;font-weight:750;display:flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;box-shadow:0 8px 18px rgba(192,0,0,.18);transition:.2s}
.auth-submit:hover:not(:disabled){background:#a90000;transform:translateY(-1px)}.auth-submit:disabled{opacity:.7;cursor:wait}
.auth-switch{text-align:center;color:#777;font-size:13px;margin-top:20px}.auth-switch a{color:#c00000;font-weight:700;text-decoration:none}
.auth-error{margin:12px 0;padding:11px 12px;border-radius:10px;background:#fff1f1;color:#a40000;font-size:13px;display:flex;gap:8px}
.auth-spinner{width:17px;height:17px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:rtspin .7s linear infinite}@keyframes rtspin{to{transform:rotate(360deg)}}
.dashboard-loading,.dashboard-error{min-height:500px;display:grid;place-items:center;align-content:center;gap:10px;color:#666}.dashboard-error{color:#a00000}.dashboard-error a{color:#c00000}
.dashboard-shell{width:min(1240px,100%);margin:0 auto;display:grid;grid-template-columns:245px 1fr;gap:24px}
.dashboard-sidebar{background:#17181c;color:#fff;border-radius:22px;padding:22px;min-height:650px;display:flex;flex-direction:column}
.dash-profile{display:flex;align-items:center;gap:11px;padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.1)}.dash-avatar{width:43px;height:43px;border-radius:13px;background:#c00000;display:grid;place-items:center;font-weight:800}.dash-profile div:last-child{min-width:0}.dash-profile strong,.dash-profile span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-profile strong{font-size:14px}.dash-profile span{font-size:11px;color:#aaa;margin-top:3px}
.dash-menu{display:grid;gap:7px;padding-top:22px}.dash-menu a,.dash-logout{color:#bfc0c5;text-decoration:none;border:0;background:transparent;padding:12px;border-radius:10px;text-align:left;font-size:14px;display:flex;align-items:center;gap:11px;cursor:pointer}.dash-menu a:hover,.dash-menu a.active{background:#292a30;color:#fff}.dash-menu a.active i{color:#ff4a4a}.dash-logout{margin-top:auto;color:#ff9a9a}.dash-logout:hover{background:#292a30}
.dashboard-main{min-width:0}.dash-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.dash-heading p{margin:0;color:#777;font-size:13px}.points-card{background:#fff;border:1px solid #e9e9ec;border-radius:16px;padding:12px 16px;display:flex;align-items:center;gap:10px;min-width:150px}.points-card>i{font-size:22px;color:#c00000}.points-card span,.points-card strong{display:block}.points-card span{font-size:10px;color:#888}.points-card strong{font-size:19px}
.dash-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:18px}.dash-stats>div{background:#fff;border:1px solid #e9e9ec;border-radius:16px;padding:17px}.dash-stats i{color:#c00000;font-size:18px}.dash-stats span,.dash-stats strong{display:block}.dash-stats span{font-size:11px;color:#888;margin-top:12px}.dash-stats strong{font-size:19px;margin-top:3px}
.dash-panel{background:#fff;border:1px solid #e8e8ec;border-radius:18px;padding:22px;margin-bottom:18px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.panel-heading h2{font-size:17px;margin:0}.panel-heading p{font-size:11px;color:#888;margin:4px 0 0}.panel-action{background:#fff0f0;color:#c00000;text-decoration:none;border-radius:10px;padding:9px 12px;font-size:12px;font-weight:750}.limit-badge{font-size:11px;background:#f4f4f6;border-radius:20px;padding:7px 11px;color:#666}
.my-video-list{display:grid;gap:9px}.my-video-row{display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:13px;padding:9px;border:1px solid #eee;border-radius:12px}.my-video-row img{width:70px;height:45px;object-fit:cover;border-radius:8px}.my-video-row strong,.my-video-row span{display:block}.my-video-row strong{font-size:12px}.my-video-row div span{font-size:10px;color:#888;margin-top:3px}.video-status{font-size:10px!important;color:#14804a!important;background:#eaf8f1;padding:6px 9px;border-radius:20px}
.empty-videos{text-align:center;padding:34px;color:#888}.empty-videos i{font-size:32px;color:#ccc;display:block;margin-bottom:8px}.empty-videos strong,.empty-videos span{display:block}.empty-videos strong{color:#555;font-size:13px}.empty-videos span{font-size:11px;margin-top:3px}
.video-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.video-form-grid>div.full{grid-column:1/-1}.video-form-grid input,.video-form-grid textarea,.video-form-grid select{width:100%;border:1px solid #ddd;border-radius:10px;padding:11px 12px;outline:0;font-size:13px;background:#fff}.video-form-grid textarea{min-height:80px;resize:vertical}.video-form-grid input:focus,.video-form-grid textarea:focus,.video-form-grid select:focus{border-color:#c00000}.form-message{margin:14px 0;padding:10px;border-radius:9px;background:#f4f9f5;color:#147441;font-size:12px}.dash-submit{width:auto;padding:0 22px;margin-top:18px}.limit-message{background:#f6f6f7;padding:14px;border-radius:10px;font-size:12px;color:#666}
@media(max-width:900px){.dashboard-shell{grid-template-columns:1fr}.dashboard-sidebar{min-height:auto}.dash-menu{grid-template-columns:repeat(4,1fr)}.dash-logout{margin-top:10px}.dash-stats{grid-template-columns:1fr 1fr}.dashboard-sidebar{padding:15px}.dash-profile{border:0;padding-bottom:8px}}
@media(max-width:620px){.auth-card{padding:24px}.auth-grid,.video-form-grid{grid-template-columns:1fr}.auth-field.full,.video-form-grid>div.full{grid-column:auto}.dash-heading{align-items:flex-start;flex-direction:column}.dash-stats{grid-template-columns:1fr}.dash-menu{grid-template-columns:1fr 1fr}.my-video-row{grid-template-columns:55px 1fr}.video-status{display:none}}


/* Dashboard and account pages use the same full-page dark gray canvas. */
html, body, #app { min-height: 100%; background: #292929; }
.dashboard-loading, .dashboard-error { color: #eeeeee; }
.dashboard-shell { background: transparent; }

/* Readable dashboard headings against the dark page canvas. */
.dash-heading h1 { color: #f4f4f5; }
.dash-heading p { color: #c5c7ce; }

/* Text placed directly on the dark dashboard canvas must not inherit black. */
.dashboard-main { color: #f3f4f6; }
.dash-heading h1 { color: #f4f4f5 !important; }
.dash-heading p { color: #c5c7ce !important; }
