*{box-sizing:border-box}body{margin:0;background:#f6f6f6;color:#444;font-family:Arial,sans-serif;font-size:14px}.topbar{height:80px;padding:26px 24px 15px;display:flex;gap:8px;align-items:center;border-bottom:1px solid #ddd;background:linear-gradient(#fff,#f7f7f7)}button,input{font:inherit}.back,.project,.publish,.importBtn,#newTitle{height:30px;border:1px solid #c8cdd2;border-radius:2px;background:linear-gradient(#fff,#e9ecee);padding:0 12px;cursor:pointer;font-weight:bold;color:#444}.back{font-size:20px}.project{border-radius:2px 0 0 2px}.topbar input{width:460px;height:30px;margin-left:-8px;border:1px solid #bfc5ca;padding:0 9px;font-size:16px;box-shadow:inset 0 1px 2px #ddd}#saveState{margin-left:8px;font-size:16px}.publish{margin-left:auto;background:linear-gradient(#4285b7,#176092);border-color:#176092;color:#fff}.upper{display:grid;grid-template-columns:38% 62%;padding:24px 24px 0;min-height:390px}.previewPanel{padding-right:16px}.previewStage{height:373px;background:#050505;position:relative;display:grid;place-items:center;overflow:hidden}.previewStage video{width:100%;height:100%;object-fit:contain}.titleOverlay{position:absolute;inset:0;display:grid;place-items:center;color:white;text-align:center;font-size:42px;font-weight:bold;padding:25px;text-shadow:0 2px 5px #000;background:#111}.hidden{display:none!important}#emptyState{color:#aaa}.transport{height:42px;background:#eee;border:1px solid #ddd;display:flex;align-items:center;gap:6px;padding:5px}.transport button{border:1px solid #bbb;background:#fff;height:28px;min-width:34px;cursor:pointer}.transport .play{background:#f5f5f5;font-size:16px}.transport input{flex:1}.slash{color:#999}.libraryPanel{border-left:1px solid #eee;padding-left:0}.tabs{height:48px;border-bottom:1px solid #ddd;display:flex;gap:10px;padding-left:15px}.tab{width:50px;border:0;background:transparent;font-size:24px;color:#555;border-bottom:4px solid transparent;cursor:pointer}.tab.active{border-bottom-color:#e62117;color:#222}.searchRow{height:40px;border:1px solid #d4d7da;margin:10px 0 7px 0;display:flex}.searchRow input{border:0;flex:1;padding:0 12px;font-size:15px}.searchRow span{padding:8px 14px;font-size:22px;color:#666}.libraryTools{display:flex;gap:7px;margin-bottom:8px}.importBtn,#newTitle{display:inline-flex;align-items:center}.mediaGrid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;max-height:265px;overflow:auto}.mediaItem{height:85px;background:#ddd;border:1px solid #ccc;position:relative;cursor:grab;overflow:hidden}.mediaItem:hover{outline:2px solid #6699cc}.mediaItem video{width:100%;height:100%;object-fit:cover;pointer-events:none}.mediaName{position:absolute;left:0;right:0;top:0;background:rgba(245,245,245,.82);padding:3px 5px;font-weight:bold;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mediaDuration{position:absolute;right:3px;bottom:2px;background:rgba(0,0,0,.75);color:#fff;padding:2px 3px}.titleItem{display:grid;place-items:center;font-size:30px;font-weight:bold;background:#444;color:white}.timelinePanel{margin:0 24px;border-top:1px solid #ddd;background:#eee;min-height:310px}.timeline{display:grid;grid-template-columns:82px 1fr;min-height:280px}.trackIcons{padding-top:36px;text-align:center;font-size:23px}.trackIcons div{height:105px;display:flex;align-items:center;justify-content:center}.rulerArea{position:relative;overflow:hidden}.ruler{height:28px;border-bottom:1px solid #ddd;background:repeating-linear-gradient(90deg,transparent 0,transparent 69px,#d1d1d1 70px);position:relative}.track{height:110px;position:relative;border-bottom:1px solid #ddd;background:#eee}.audioTrack{height:100px}.dropHint{position:absolute;left:12px;top:20px;width:145px;height:82px;border:1px dashed #bbb;background:#f6f6f6;display:grid;place-items:center;color:#555}.audioTrack .dropHint{height:55px;top:18px}.timelineClip{position:absolute;top:17px;height:76px;background:linear-gradient(#fff,#d9d9d9);border:2px solid #777;overflow:hidden;cursor:pointer}.timelineClip.selected{border-color:#2879b9;box-shadow:0 0 0 1px #7bb0dd}.timelineClip .clipTitle{padding:7px;font-weight:bold;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timelineClip .clipMeta{position:absolute;bottom:5px;left:7px;color:#666}.timelineClip.titleClip{background:#333;color:#fff}.playhead{position:absolute;z-index:10;top:0;bottom:0;width:2px;background:#2879b9;pointer-events:none}.playhead span{position:absolute;left:-8px;top:28px;width:18px;height:22px;background:#2879b9;border-radius:2px}.playhead b{position:absolute;top:214px;left:-22px;background:#2879b9;color:#fff;padding:4px 7px;white-space:nowrap;font-size:12px}.timelineBottom{height:36px;padding:7px 10px;display:flex;justify-content:space-between;color:#777}.zoom input{vertical-align:middle;width:110px}.modal{position:fixed;inset:0;background:rgba(0,0,0,.4);display:grid;place-items:center}.modalBox{background:#fff;border-radius:3px;padding:25px;width:350px;box-shadow:0 5px 30px #222}.modalBox button{float:right;padding:6px 15px}@media(max-width:850px){.upper{grid-template-columns:1fr}.previewPanel{padding:0}.topbar input{width:30vw}.libraryPanel{margin-top:15px}.mediaGrid{grid-template-columns:repeat(4,1fr)}}
/* Google Material Icons */
.material-icons{
  font-family:'Material Icons';
  font-weight:normal;
  font-style:normal;
  font-size:25px;
  line-height:1;
  letter-spacing:normal;
  text-transform:none;
  display:inline-block;
  white-space:nowrap;
  word-wrap:normal;
  direction:ltr;
  -webkit-font-feature-settings:'liga';
  -webkit-font-smoothing:antialiased;
}
.tab .material-icons{font-size:27px;vertical-align:middle}
.trackIcons .material-icons{font-size:23px}

.renderBtn{height:30px;border:1px solid #aaa;border-radius:2px;background:linear-gradient(#fff,#e9e9e9);padding:0 12px;cursor:pointer;font-weight:bold;display:flex;align-items:center;gap:5px}.renderBtn .material-icons{font-size:18px}.playhead .splitBtn{position:absolute;z-index:20;left:-13px;top:2px;width:27px;height:25px;padding:0;border:1px solid #176092;border-radius:2px;background:#2879b9;color:#fff;cursor:pointer;display:grid;place-items:center;pointer-events:auto}.playhead .splitBtn .material-icons{font-size:17px}.playhead .splitBtn:hover{background:#155f91}.renderBox{width:430px}.renderBox progress{width:100%;height:18px;margin:8px 0 18px}

/* Movable timeline playhead */
.rulerArea{overflow-x:auto;overflow-y:hidden}
.playhead{cursor:ew-resize;touch-action:none}
.playhead .splitBtn{cursor:pointer}
.playhead b{pointer-events:none}

/* Old YouTube Video Editor clip selection and modification panel */
.dropHint.dragHover{border:2px solid #2879b9;background:#f7fbff;color:#2879b9}
.timelineClip.selected{border-color:#2879b9;box-shadow:none}
.timelineClip .nudge{display:none;position:absolute;top:-2px;bottom:-2px;width:10px;background:#2879b9;z-index:4;cursor:ew-resize}
.timelineClip.selected .nudge{display:block}
.timelineClip .nudge.left{left:-2px}.timelineClip .nudge.right{right:-2px}
.timelineClip .nudge:before{content:"";position:absolute;top:6px;left:3px;border:3px solid transparent;border-right-color:#fff}
.timelineClip .nudge.right:before{left:1px;border-right-color:transparent;border-left-color:#fff}
.timelineClip .splitBadge{display:none;position:absolute;left:2px;bottom:2px;background:#2879b9;color:#fff;width:22px;height:22px;align-items:center;justify-content:center;z-index:5}
.timelineClip.wasSplit .splitBadge{display:flex}.splitBadge .material-icons{font-size:15px}
.editPanel{height:100%;min-height:350px;background:#f7f7f7;border-left:1px solid #eee}
.editTabs{height:43px;border-bottom:1px solid #d6d6d6;display:flex;align-items:stretch;padding-left:5px}
.editTab{border:0;background:transparent;padding:0 14px;color:#555;font-weight:bold;cursor:pointer;border-bottom:4px solid transparent}
.editTab.active{border-bottom-color:#e62117;color:#333}
.closeEdit{margin-left:auto;width:48px;border:0;background:transparent;font-size:31px;color:#888;cursor:pointer}
.editContent{padding:12px 5px 0}
.quickColumns{display:grid;grid-template-columns:1fr 1fr;min-height:270px}
.quickCol{padding-right:25px}.rightQuick{padding-left:0}
.quickCol label{display:block;font-size:16px;margin-bottom:6px}
.quickCol input[type=checkbox],.sideBySide input{appearance:none;width:19px;height:19px;vertical-align:-4px;margin:0 5px 0 0;border:1px solid #c9c9c9;background:#f8f8f8}
.quickCol input[type=checkbox]:checked,.sideBySide input:checked{background:#2879b9;box-shadow:inset 0 0 0 4px #f8f8f8}
.effectControls{margin:6px 0 8px 24px}
.effectControls input[type=range]{width:120px;display:block;margin:7px 0 1px}
.effectControls div{text-align:center;width:120px;color:#555}
.effectControls select{height:31px;min-width:59px;border:1px solid #ccc;background:#f5f5f5;font-weight:bold}
.rotationLabel{margin:5px 0 4px 24px;font-size:16px}
.rotateBtn{width:44px;height:38px;margin-left:24px;border:1px solid #ccc;background:linear-gradient(#fff,#eee);cursor:pointer}
.rotateBtn+.rotateBtn{margin-left:1px}.rotateBtn:last-child .material-icons{transform:scaleY(-1)}
.stabilizeControls{margin-left:25px}.sideBySide{border-top:1px solid #ddd;padding:13px 0;font-size:16px}
.emptyEdit{color:#777;padding:25px;font-size:15px}

.projectMenuWrap{position:relative;display:inline-block}
.projectMenu{position:absolute;top:100%;left:0;z-index:200;background:#fff;border:1px solid #ccc;box-shadow:0 2px 5px rgba(0,0,0,.18);padding:4px;width:120px}
.projectMenu button{width:100%;border:0;background:#fff;text-align:left;padding:8px;cursor:pointer}
.projectMenu button:hover{background:#eee}
.titleLibrary{padding:12px}.titleAsset{width:130px;cursor:grab;user-select:none}
.titleThumb{height:80px;background:#ddd;border:1px solid #c8c8c8;display:flex;align-items:center;justify-content:center}
.titleThumb .material-icons{font-size:42px;color:#777}.titleAssetName{text-align:center;padding-top:5px;font-size:13px}
.timelineThumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.75;pointer-events:none}
.timelineClip{overflow:hidden}.timelineClip .clipTitle,.timelineClip .clipMeta,.timelineClip .splitBadge,.timelineClip .nudge{z-index:8}
.titleClip{background:#f4f4f4!important;color:#333}.titleClip .clipTitle{text-shadow:none}

.titleAsset{background:#fff;border:1px solid #ddd;border-radius:3px;padding:5px;margin:6px}
.titleAsset:hover{outline:2px solid #4aa3ff}
.titleThumb{background:#eee;height:70px}
.titleConfig{padding:10px}


/* Robust centered-title drag/drop and Video-tab-style title card */
.titleDropHover{outline:2px solid #2879b9!important;background:#f7fbff!important}
.mediaItem.titleItem{display:block;background:#444;color:#fff}
.mediaItem.titleItem .titleThumb{height:100%;display:grid;place-items:center;background:#444}
.mediaItem.titleItem .titleThumb .material-icons{font-size:36px;color:#fff}
.mediaItem.titleItem .mediaName{background:rgba(245,245,245,.82);color:#444}

/* v0.9: original-style Text chooser and dedicated text configuration */
.textChooser{padding:14px 12px;min-height:250px}
.textChooserIntro{font-size:16px;margin:0 0 14px}
.textChooserGrid{display:flex;gap:8px;align-items:flex-start}
.textChoice{width:145px;cursor:grab;user-select:none;border-top:1px solid #d4d4d4}
.textChoiceName{font-weight:bold;font-size:14px;padding:5px 8px 4px}
.textChoiceThumb{height:62px;background:#d5d5d5;border-top:1px solid #c4c4c4;display:flex;align-items:center;justify-content:center;color:#6d6d6d;font-size:28px;font-weight:bold}
.textChoice.dragging{opacity:.55}
.titleConfigHeader{height:40px;border-bottom:1px solid #ccc;display:flex;align-items:center;padding-left:20px;font-size:15px}
.titleConfigHeader .closeEdit{margin-left:auto}
.textConfigForm{padding:12px 20px;display:flex;flex-wrap:wrap;gap:14px 18px;align-items:flex-start}
.cfgGroup{display:flex;flex-direction:column;gap:4px;min-width:85px;font-weight:bold;color:#666}
.cfgGroup input[type=text],.cfgGroup select{height:34px;border:1px solid #ccc;background:#f7f7f7;padding:0 10px;font-size:14px;color:#333;font-weight:normal}
.cfgBtn{height:34px;min-width:40px;border:1px solid #c9c9c9;background:#f5f5f5;font-size:16px}
.cfgTextWide{width:100%;max-width:480px}
.cfgTextWide input{height:42px}
.cfgSlider{min-width:125px}
.cfgSlider input{width:120px}
.cfgPercent{font-weight:normal;text-align:center}
.enableTextRow{display:block;padding:16px 20px;font-size:16px}
#videoTextConfig{padding:0}


/* v1.0: hover toolbar for timeline clips */
.timelineClip{position:relative}
.timelineClip .hoverBar{
  position:absolute;
  left:0;right:0;top:0;
  height:23px;
  background:#fff;
  color:#333;
  z-index:30;
  display:none;
  align-items:center;
  border-bottom:1px solid #ccc;
  box-shadow:0 1px 2px rgba(0,0,0,.15);
}
.timelineClip:hover .hoverBar{display:flex}
.hoverName{
  flex:1;
  min-width:0;
  padding:2px 5px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font:12px Arial,sans-serif;
}
.deleteClip{
  width:24px;height:23px;
  border:0;
  background:transparent;
  color:#555;
  display:grid;
  place-items:center;
  cursor:pointer;
  padding:0;
}
.deleteClip:hover{background:#eee;color:#111}
.deleteClip .material-icons{font-size:17px}
.timelineClip .clipTitle{padding-top:29px}
.timelineClip.titleClip .clipTitle{font-family:'Open Sans',Arial,sans-serif;font-weight:400}

/* v1.1: keep clip controls above the clip image */
.timelineClip .hoverBar{pointer-events:auto}
.timelineClip .deleteClip{position:relative;z-index:31}

/* v1.2: timeline clips must remain on one horizontal video track */
.videoTrack{position:relative;display:block;white-space:nowrap;overflow:visible}
.timelineClip{position:absolute !important;top:17px !important;display:block !important;margin:0 !important;float:none !important}

/* v1.3 exact text preview presets */
.centeredTitlePreview{position:absolute;inset:0;display:grid;place-items:center;background:#000;color:#fff;text-align:center;font-family:'Open Sans',Arial,sans-serif;font-weight:400;font-size:64px;line-height:1.15;padding:0 30px;box-sizing:border-box}
.titlePreviewBanner{position:absolute;left:0;right:0;bottom:0;height:30%;background:rgba(0,0,0,.5);color:#fff;display:flex;align-items:center;justify-content:flex-start;padding:0 34px;box-sizing:border-box;font-family:'Open Sans',Arial,sans-serif;font-weight:400;font-size:32px;line-height:1.15;text-align:left}
.regularDefault{font-family:Arial,sans-serif;font-weight:400!important}

/* v1.4 text preview corrections */
.titlePreviewBanner{top:auto !important;right:0 !important;left:0 !important;bottom:0 !important;height:30% !important;text-shadow:none !important;}
.centeredTitlePreview{text-shadow:none !important;}

/* v1.5 Creative Commons library */
.ccCard{width:155px;cursor:grab;user-select:none;border:1px solid #cfcfcf;background:#eee}
.ccThumb{height:82px;background:#222;position:relative;overflow:hidden}
.ccThumb video{width:100%;height:100%;object-fit:cover;pointer-events:none}
.ccName{font-weight:bold;font-size:13px;padding:5px 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ccMeta{font-size:11px;color:#777;padding:0 7px 6px}
.ccCard.dragging{opacity:.55}
.ccNotice{padding:14px 12px;color:#666;font-size:13px}

.cfgSectionLabel{width:100%;font-size:14px;font-weight:bold;color:#555;border-bottom:1px solid #ddd;padding:4px 0}
.toggleBtn.active{background:#d8e8f6;border-color:#8ab4d8}
.titlePreviewBanner,.centeredTitlePreview{text-shadow:none!important}
.titlePreviewBanner{font-family:"Open Sans",Arial,sans-serif;font-weight:400}
.centeredTitlePreview{font-family:"Open Sans",Arial,sans-serif;font-weight:400}

.titlePreviewBanner{
  position:absolute !important;
  left:0 !important; right:0 !important; width:100% !important;
  margin:0 !important; z-index:20; text-shadow:none !important;
  box-sizing:border-box !important;
}

.slideThumb{overflow:hidden}
.zoomThumb{transform:scale(.92)}
.titleOverlay{z-index:20;pointer-events:none}
