/*
Theme Name: Jamcono Video
Theme URI: https://jamcono.com/
Author: Jamcono
Description: Clean private video application theme for video.jamcono.com.
Version: 0.2.0
Requires at least: 7.1
Requires PHP: 8.1
Text Domain: jamcono-video-theme
*/
:root{--jv-blue:#0853BF;--jv-blue-dark:#06459d;--jv-ink:#111827;--jv-muted:#667085;--jv-bg:#f6f8fb;--jv-card:#fff;--jv-line:#e4e9f0;--jv-danger:#b42318;--jv-radius:16px;--jv-shadow:0 14px 45px rgba(16,24,40,.07)}
*{box-sizing:border-box}html{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--jv-bg);color:var(--jv-ink)}body{margin:0;background:var(--jv-bg);color:var(--jv-ink);font-size:16px;line-height:1.5}a{color:var(--jv-blue)}img{max-width:100%;height:auto}.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.jv-site-header{height:70px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--jv-line);display:flex;align-items:center;position:sticky;top:0;z-index:20;backdrop-filter:blur(14px)}.jv-site-header-inner{width:min(1320px,calc(100% - 40px));margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.jv-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--jv-ink);font-weight:700;letter-spacing:-.02em;min-width:0}.jv-logo-image{display:block;max-height:38px;width:auto;max-width:220px}.jv-brand-mark{width:34px;height:34px;border-radius:9px;background:var(--jv-blue);color:#fff;display:grid;place-items:center;font-weight:850}.jv-brand-mark-large{width:52px;height:52px;border-radius:14px;margin:0 auto 14px}.jv-brand-text strong{font-weight:850}.jv-main-nav{display:flex;align-items:center;gap:20px}.jv-main-nav>a,.jv-user-menu a{color:#344054;text-decoration:none;font-size:14px;font-weight:650}.jv-user-menu{display:flex;align-items:center;gap:12px;padding-left:18px;border-left:1px solid var(--jv-line);font-size:14px}.jv-user-menu span{color:var(--jv-muted)}
.jv-site-footer{min-height:58px;display:grid;place-items:center;border-top:1px solid var(--jv-line);color:#98a2b3;font-size:12px;margin-top:50px}.jv-home{min-height:calc(100vh - 128px)}.jv-login-card{width:min(420px,calc(100% - 32px));margin:10vh auto;background:#fff;border:1px solid var(--jv-line);border-radius:20px;padding:34px;box-shadow:var(--jv-shadow)}.jv-login-brand{text-align:center;margin-bottom:26px}.jv-login-brand .jv-logo-image{max-height:58px;max-width:250px;margin:0 auto 16px}.jv-login-brand h1{font-size:26px;letter-spacing:-.03em;margin:0}.jv-login-card label{display:block;font-size:13px;font-weight:700;margin:0 0 7px}.jv-login-card input[type=text],.jv-login-card input[type=password]{width:100%;border:1px solid #ccd4df;background:#fff;border-radius:10px;padding:12px 13px;font:inherit;outline:none}.jv-login-card input:focus{border-color:var(--jv-blue);box-shadow:0 0 0 3px rgba(8,83,191,.1)}.jv-login-card .login-username,.jv-login-card .login-password{margin:0 0 17px}.jv-login-card .login-remember{font-size:13px;color:var(--jv-muted)}.jv-login-card .login-submit{margin:20px 0 0}.jv-login-card .button-primary{width:100%;border:0;border-radius:10px;padding:12px 15px;background:var(--jv-blue);color:#fff;font:inherit;font-weight:750;cursor:pointer}.jv-login-card .button-primary:hover{background:var(--jv-blue-dark)}
.jv-library-shell,.jv-page{width:min(1260px,calc(100% - 40px));margin:0 auto;padding:42px 0 20px}.jv-narrow-page{width:min(850px,calc(100% - 40px))}.jv-library-heading,.jv-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.jv-library-heading h1,.jv-page-heading h1{font-size:32px;line-height:1.15;letter-spacing:-.035em;margin:0}.jv-page-heading p{color:var(--jv-muted);margin:8px 0 0}.jv-back-link{display:inline-block;text-decoration:none;color:var(--jv-muted);font-size:13px;font-weight:650;margin-bottom:8px}.jv-app-toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:24px}.jv-search{flex:1;max-width:460px}.jv-search input{width:100%;border:1px solid var(--jv-line);background:#fff;border-radius:11px;padding:11px 13px;font:inherit}.jv-button{appearance:none;border:1px solid var(--jv-line);background:#fff;color:#344054!important;text-decoration:none;border-radius:10px;padding:10px 14px;font:inherit;font-size:14px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.jv-button:hover{border-color:#c9d2df}.jv-button-primary{background:var(--jv-blue);border-color:var(--jv-blue);color:#fff!important}.jv-button-primary:hover{background:var(--jv-blue-dark)}.jv-button-quiet{background:#fff}.jv-button-danger{border-color:#f2c2bd;color:var(--jv-danger)!important;background:#fff}.jv-button:disabled{opacity:.55;cursor:not-allowed}
.jv-video-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px 20px}.jv-video-card{min-width:0}.jv-card-thumb{display:block;position:relative;aspect-ratio:16/9;border-radius:13px;overflow:hidden;background:#111;text-decoration:none}.jv-card-thumb img{width:100%;height:100%;object-fit:cover;display:block}.jv-thumb-placeholder{width:100%;height:100%;display:grid;place-items:center;background:linear-gradient(145deg,#e7edf7,#cfd9e8);color:var(--jv-blue);font-size:28px}.jv-duration{position:absolute;right:8px;bottom:8px;background:rgba(0,0,0,.75);color:#fff;border-radius:6px;padding:3px 6px;font-size:11px;font-weight:750}.jv-card-body{padding:10px 2px 0}.jv-card-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.jv-card-title-row h3{font-size:15px;line-height:1.35;margin:0;min-width:0}.jv-card-title-row h3 a{color:var(--jv-ink);text-decoration:none}.jv-card-menu{text-decoration:none;color:var(--jv-muted);font-weight:800;letter-spacing:1px}.jv-card-meta{display:flex;gap:6px;align-items:center;color:var(--jv-muted);font-size:12px;margin-top:5px;flex-wrap:wrap}.jv-empty-state{background:#fff;border:1px solid var(--jv-line);border-radius:16px;padding:52px 24px;text-align:center;color:var(--jv-muted)}.jv-empty-state h1,.jv-empty-state h2{color:var(--jv-ink);margin:0 0 8px}.jv-empty-state p{margin:0}
.jv-panel{background:#fff;border:1px solid var(--jv-line);border-radius:var(--jv-radius);padding:24px;box-shadow:0 7px 24px rgba(16,24,40,.035)}.jv-panel h2{margin:0 0 20px;font-size:20px;letter-spacing:-.02em}.jv-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.jv-field{margin-bottom:18px}.jv-field-full{grid-column:1/-1}.jv-field label{display:block;font-size:13px;font-weight:750;margin-bottom:7px}.jv-field label span,.jv-field small{color:var(--jv-muted);font-weight:500}.jv-field input[type=text],.jv-field input[type=search],.jv-field input[type=file],.jv-field textarea,.jv-field select{width:100%;border:1px solid #ccd4df;background:#fff;border-radius:10px;padding:11px 12px;font:inherit;color:var(--jv-ink)}.jv-field textarea{resize:vertical}.jv-field small{display:block;font-size:12px;margin-top:6px}.jv-form-actions{display:flex;gap:10px;align-items:center;margin-top:6px}.jv-upload-drop{border:1.5px dashed #b9c6d7;border-radius:14px;background:#f9fbfe;padding:24px;text-align:center;margin-bottom:24px}.jv-upload-drop input{position:absolute;opacity:0;pointer-events:none}.jv-upload-drop label{cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:5px}.jv-upload-drop label strong{font-size:16px}.jv-upload-drop label span:last-child{color:var(--jv-muted);font-size:12px}.jv-upload-icon{width:42px;height:42px;border-radius:12px;background:#e8f0fb;color:var(--jv-blue);display:grid;place-items:center;font-size:24px;margin-bottom:4px}.jv-file-selected{margin-top:14px;color:var(--jv-blue);font-size:13px;font-weight:700}.jv-upload-progress-wrap{margin:20px 0}.jv-upload-progress-head{display:flex;align-items:center;justify-content:space-between;font-size:13px;margin-bottom:7px}.jv-progress-track{height:8px;background:#e8edf4;border-radius:999px;overflow:hidden}.jv-progress-track span{display:block;width:0;height:100%;background:var(--jv-blue);transition:width .2s ease}.jv-upload-message{margin-top:16px}.jv-success-message,.jv-error-message{border-radius:12px;padding:14px 15px;display:flex;align-items:center;justify-content:space-between;gap:14px}.jv-success-message{background:#ecfdf3;color:#027a48}.jv-error-message{background:#fef3f2;color:#b42318}.jv-notice{background:#eff6ff;border:1px solid #c7dbfa;color:#23456d;border-radius:12px;padding:13px 15px;margin-bottom:18px}.jv-notice-error{background:#fef3f2;border-color:#f3c7c2;color:#912018}
.jv-watch-page{width:min(1440px,calc(100% - 40px));margin:0 auto;padding:32px 0 10px}.jv-watch-shell{display:block}.jv-watch-shell.has-playlist{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}.jv-player-shell{background:#000;aspect-ratio:16/9;border-radius:14px;overflow:hidden;display:grid;place-items:center}.jv-player{display:block;width:100%;height:100%;object-fit:contain;background:#000}.jv-player-state{color:#fff;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:30px}.jv-player-state span{color:#bfc5cf;font-size:13px}.jv-watch-info{padding:18px 2px 0}.jv-watch-title-row{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.jv-watch-title-row h1{font-size:25px;line-height:1.25;letter-spacing:-.025em;margin:0}.jv-watch-meta{display:flex;gap:7px;color:var(--jv-muted);font-size:12px;margin-top:6px}.jv-watch-actions{display:flex;gap:8px}.jv-description{margin-top:18px;padding-top:16px;border-top:1px solid var(--jv-line);color:#344054;max-width:900px}.jv-description p:first-child{margin-top:0}.jv-playlist-panel{background:#fff;border:1px solid var(--jv-line);border-radius:14px;overflow:hidden;max-height:calc(100vh - 120px);position:sticky;top:90px}.jv-playlist-panel-head{display:flex;justify-content:space-between;gap:14px;padding:14px 15px;border-bottom:1px solid var(--jv-line);font-size:13px}.jv-playlist-panel-head span{color:var(--jv-muted)}.jv-playlist-panel-list{overflow:auto;max-height:560px}.jv-playlist-row{display:grid;grid-template-columns:92px 1fr;gap:10px;align-items:center;padding:9px 10px;color:var(--jv-ink);text-decoration:none;font-size:13px}.jv-playlist-row:hover,.jv-playlist-row.is-current{background:#f3f6fa}.jv-playlist-row-thumb{aspect-ratio:16/9;background:#e6ebf2;border-radius:7px;overflow:hidden;display:grid;place-items:center;color:var(--jv-blue)}.jv-playlist-row-thumb img{width:100%;height:100%;object-fit:cover}
.jv-poster-preview{display:block;max-width:260px;border-radius:10px;margin-bottom:10px}.jv-danger-zone{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:20px;border-color:#f0d1cd}.jv-danger-zone p{margin:4px 0 0;color:var(--jv-muted);font-size:13px}.jv-playlist-admin-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:22px;align-items:start}.jv-playlist-admin-layout aside>h2{font-size:18px;margin:0 0 12px}.jv-playlist-list{background:#fff;border:1px solid var(--jv-line);border-radius:14px;overflow:hidden}.jv-playlist-admin-row{display:flex;justify-content:space-between;gap:12px;padding:13px 14px;border-bottom:1px solid var(--jv-line)}.jv-playlist-admin-row:last-child{border-bottom:0}.jv-playlist-admin-row strong{display:block;font-size:13px}.jv-playlist-admin-row small{display:block;color:var(--jv-muted);font-size:11px;margin-top:2px}.jv-playlist-admin-row a{font-size:12px;font-weight:700;text-decoration:none;margin-left:8px}.jv-playlist-delete{margin-top:14px}.jv-playlist-sort{border:1px solid var(--jv-line);border-radius:11px;overflow:hidden;margin-top:8px;max-height:330px;overflow-y:auto}.jv-playlist-video-item{display:flex;align-items:center;gap:9px;padding:10px 11px;border-bottom:1px solid var(--jv-line);background:#fff;cursor:grab;font-size:13px}.jv-playlist-video-item:last-child{border-bottom:0}.jv-playlist-video-item.is-dragging{opacity:.45}.jv-drag-handle{color:#98a2b3}.jv-empty-mini{padding:18px;color:var(--jv-muted);font-size:13px}
@media(max-width:1050px){.jv-video-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.jv-watch-shell.has-playlist{grid-template-columns:1fr}.jv-playlist-panel{position:static;max-height:none}.jv-playlist-panel-list{max-height:360px}.jv-playlist-admin-layout{grid-template-columns:1fr}}
@media(max-width:760px){.jv-site-header{height:auto;min-height:62px}.jv-site-header-inner{width:calc(100% - 24px);padding:10px 0}.jv-main-nav{gap:12px}.jv-main-nav>a{display:none}.jv-user-menu{padding-left:0;border-left:0}.jv-user-menu span{display:none}.jv-library-shell,.jv-page,.jv-watch-page,.jv-narrow-page{width:calc(100% - 24px);padding-top:24px}.jv-library-heading h1,.jv-page-heading h1{font-size:27px}.jv-app-toolbar{align-items:stretch}.jv-search{max-width:none}.jv-video-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}.jv-form-grid{grid-template-columns:1fr}.jv-field-full{grid-column:auto}.jv-panel{padding:18px}.jv-watch-page{padding-top:16px}.jv-watch-title-row{flex-direction:column}.jv-watch-actions{width:100%}.jv-watch-actions .jv-button{flex:1}.jv-danger-zone{align-items:flex-start;flex-direction:column}.jv-success-message{align-items:flex-start;flex-direction:column}.jv-playlist-admin-layout{gap:18px}.jv-site-footer{margin-top:32px}}
@media(max-width:480px){.jv-video-grid{grid-template-columns:1fr}.jv-login-card{margin:8vh auto;padding:26px 22px}.jv-app-toolbar{flex-direction:column}.jv-button{min-height:44px}.jv-watch-page{width:100%;padding-top:0}.jv-player-shell{border-radius:0}.jv-watch-info{padding:16px 12px}.jv-watch-shell.has-playlist{gap:10px}.jv-playlist-panel{border-radius:0;border-left:0;border-right:0}.jv-library-shell,.jv-page,.jv-narrow-page{width:calc(100% - 24px)}}
