/* 데스크탑 전용 스타일 (화면 너비 1024px 이상) */
@media (min-width: 1024px) {
	:root {
		--ppt-orange: #d24726;
		--ppt-dark-bg: #2b2b2b;
		--ppt-ribbon-bg: #f3f3f3;
		--ppt-border: #c8c8c8;
		--ppt-work-bg: #666;
	}

	* {
		box-sizing: border-box;
	}

	html, body {
		margin: 0;
		padding: 0;
		height: 100%;
		font-family: "Segoe UI", sans-serif;
		background-color: #444;
		overflow: hidden;
	}

	body {
		color: #222;
	}

	.ppt-container {
		display: flex;
		flex-direction: column;
		height: 100vh;
	}

	/* 상단 타이틀 바 */
	.ppt-titlebar {
		background-color: var(--ppt-orange);
		color: #fff;
		padding: 4px 12px;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 16px;
		min-height: 36px;
	}

	.title-left {
		font-size: 16px;
		font-weight: 700;
		white-space: nowrap;
		line-height: 1;
	}

	.login-area {
		display: flex;
		justify-content: flex-end;
		align-items: center;
		flex: 1;
		min-width: 0;
	}

	.login_form {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		gap: 8px;
		margin: 0;
		min-width: 0;
	}

	.login_form label {
		font-size: 12px;
		color: #fff;
		white-space: nowrap;
	}

	.login_form input {
		width: 150px;
		height: 26px;
		padding: 2px 8px;
		border: 1px solid rgba(255, 255, 255, 0.5);
		border-radius: 2px;
		font-size: 12px;
		outline: none;
		background-color: var(--ppt-orange);
		color: #fff;
	}

	.login_form input::placeholder {
		color: rgba(255, 255, 255, 0.8);
	}

	.login_form input:focus {
		border-color: #fff;
		background-color: var(--ppt-orange);
		color: #fff;
	}

	.login_form button {
		height: 26px;
		padding: 0 10px;
		border: 1px solid rgba(255, 255, 255, 0.5);
		background-color: var(--ppt-orange);
		color: #fff;
		border-radius: 2px;
		cursor: pointer;
		font-size: 12px;
		font-weight: 700;
		white-space: nowrap;
	}

	.login_form button:hover {
		background-color: #b93f22;
		border-color: #fff;
	}

	.login_form button:active {
		background-color: #a6381d;
	}

	.login_user a {
		color: #fff;
		text-decoration: none;
	}

	/* 리본 */
	.ppt-ribbon {
		background-color: var(--ppt-ribbon-bg);
		border-bottom: 1px solid var(--ppt-border);
	}

	.rtabs {
		display: flex;
		align-items: center;
		background: #fff;
		padding-left: 10px;
		border-bottom: 1px solid #ddd;
		overflow-x: auto;
		overflow-y: hidden;
		white-space: nowrap;
	}

	.rtab {
		padding: 6px 14px;
		cursor: pointer;
		font-size: 12px;
		border: none;
		background: none;
		flex: 0 0 auto;
	}

	.rtab.active {
		color: var(--ppt-orange);
		border-bottom: 3px solid var(--ppt-orange);
		font-weight: 700;
	}

	.rpanel {
		background: var(--ppt-ribbon-bg);
		padding: 6px 10px;
		display: none;
		gap: 10px;
		min-height: 60px;
		align-items: stretch;
		overflow-x: auto;
	}

	.rpanel.open {
		display: flex;
	}

	.rgroup {
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		align-items: center;
		padding-right: 10px;
		border-right: 1px solid #ccc;
		min-width: fit-content;
	}

	.rgroup:last-child {
		border-right: none;
	}

	.rgroup-buttons {
		display: flex;
		align-items: flex-start;
		gap: 1px;
	}

	.ribtn {
		background: none;
		border: 1px solid transparent;
		cursor: pointer;
		padding: 3px 4px;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: flex-start;
		font-size: 11px;
		width: 52px;
		min-width: 52px;
		max-width: 52px;
		min-height: 48px;
		border-radius: 3px;
		text-align: center;
	}

	.ribtn .btn-text {
		display: block;
		white-space: normal;
		word-break: keep-all;
		overflow-wrap: break-word;
		line-height: 1.2;
		text-align: center;
	}

	.ribtn:hover {
		background: #e7e7e7;
		border-color: #bbb;
	}

	.ribtn .ico {
		font-size: 15px;
		margin-bottom: 2px;
		line-height: 1;
	}

	.rlabel {
		font-size: 9px;
		color: #888;
		margin-top: 4px;
		text-align: center;
		white-space: nowrap;
	}

	/* 메인 */
	.ppt-main {
		display: flex;
		flex: 1;
		min-height: 0;
		overflow: hidden;
	}

	.ppt-sidebar {
		width: 180px;
		background-color: var(--ppt-dark-bg);
		border-right: 1px solid #1a1a1a;
		padding: 12px 8px 12px 8px;
		overflow-y: auto;
		flex-shrink: 0;
	}

	.slide-thumb {
		width: 130px;
		height: 74px;
		background: #fff;
		margin: 0 auto 16px auto;
		border: 2px solid transparent;
		cursor: pointer;
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		font-size: 11px;
		color: #666;
		text-align: center;
		padding: 8px;
	}

	.slide-thumb.active {
		border-color: var(--ppt-orange);
	}

	.slide-num {
		position: absolute;
		left: -18px;
		color: #fff;
		font-size: 12px;
		top: 4px;
	}

	.ppt-workspace {
		flex: 1;
		background-color: var(--ppt-work-bg);
		display: flex;
		align-items: flex-start;   /* 가운데 정렬 → 상단 정렬 */
		justify-content: center;
		padding: 20px; /* 위 여백 */
		min-width: 0;
		min-height: 0;
		overflow: hidden;          /* 바깥쪽 스크롤 막기 */
	}

	.ppt-slide {
		width: 100%;
		max-width: 1200px;
		height: calc(100% - 1px); /* 상단바/리본/상태바 제외한 높이 */
		margin-bottom: 0px; /* 하단 공간 확보 */
		background-color: #fff;
		box-shadow: 0 10px 20px rgba(0,0,0,0.3);
		overflow-y: auto;          /* 슬라이드 내부 세로 스크롤 */
		overflow-x: hidden;
		padding: 40px;
	}


	.slide-title {
		color: var(--ppt-orange);
		border-bottom: 1px solid #ccc;
		padding-bottom: 10px;
		margin-top: 0;
		margin-bottom: 20px;
		font-size: 24px;
		font-weight: 700;
	}

	.cal-table {
		width: 100%;
		border-collapse: collapse;
		table-layout: fixed;
	}

	.cal-table th {
		border-bottom: 2px solid var(--ppt-orange);
		padding: 10px;
		color: var(--ppt-orange);
		font-weight: 700;
	}

	.cal-table td {
		border: 1px solid #eee;
		height: 90px;
		vertical-align: top;
		padding: 6px;
	}

	.today {
		background-color: #fff4f0;
	}

	.badge {
		display: inline-block;
		background: var(--ppt-orange);
		color: #fff;
		border-radius: 10px;
		padding: 2px 6px;
		font-size: 10px;
	}

	.today-detail {
		margin-top: 30px;
		padding: 15px;
		background: #f9f9f9;
		border-radius: 10px;
	}

	.today-detail h4 {
		margin: 0 0 10px 0;
		font-size: 18px;
	}

	.ppt-status {
		background-color: var(--ppt-orange);
		color: #fff;
		font-size: 11px;
		padding: 4px 14px;
		display: flex;
		justify-content: space-between;
		gap: 10px;
	}

	/* 반응형 */
	@media (max-width: 1200px) {
		.login_form input {
			width: 120px;
		}
	}

	@media (max-width: 980px) {
		html, body {
			overflow: auto;
		}

		.ppt-container {
			min-width: 980px;
			height: auto;
			min-height: 100vh;
		}

		.ppt-titlebar {
			flex-wrap: wrap;
		}

		.login-area {
			width: 100%;
			justify-content: flex-end;
		}
	}
}

/* 모바일 전용 스타일 (화면 너비 1023px 이하) */
@media (max-width: 1023px) {
	:root {
    	display: none;
	}

	* {
		box-sizing: border-box;
	}

	html, body {
		margin: 0;
		padding: 0;
		height: 100%;
		font-family: "Segoe UI", sans-serif;
		background-color: #FFFF;
		overflow: hidden;
	}

	body {
		color: #222;
	}

	.ppt-container {
    	display: none;
	}

	/* 상단 타이틀 바 */
	.ppt-titlebar {
    	display: none;
	}

	.title-left {
    	display: none;
	}

	.login-area {
		display: flex;
		justify-content: flex-end;
		align-items: center;
		flex: 1;
		min-width: 0;
	}

	.login_form {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		gap: 8px;
		margin: 0;
		min-width: 0;
	}

	.login_form label {
		font-size: 12px;
		color: #fff;
		white-space: nowrap;
	}

	.login_form input {
		width: 150px;
		height: 26px;
		padding: 2px 8px;
		border: 1px solid rgba(255, 255, 255, 0.5);
		border-radius: 2px;
		font-size: 12px;
		outline: none;
		background-color: var(--ppt-orange);
		color: #fff;
	}

	.login_form input::placeholder {
		color: rgba(255, 255, 255, 0.8);
	}

	.login_form input:focus {
		border-color: #fff;
		background-color: var(--ppt-orange);
		color: #fff;
	}

	.login_form button {
		height: 26px;
		padding: 0 10px;
		border: 1px solid rgba(255, 255, 255, 0.5);
		background-color: var(--ppt-orange);
		color: #fff;
		border-radius: 2px;
		cursor: pointer;
		font-size: 12px;
		font-weight: 700;
		white-space: nowrap;
	}

	.login_form button:hover {
		background-color: #b93f22;
		border-color: #fff;
	}

	.login_form button:active {
		background-color: #a6381d;
	}

	.login_user a {
		color: #fff;
		text-decoration: none;
	}

	/* 리본 */
	.ppt-ribbon {
    	display: none;
	}
	.rtabs {
    	display: none;
	}

	.rtab {
    	display: none;
	}

	.rtab.active {
    	display: none;
	}

	.rpanel {
    	display: none;
	}

	.rpanel.open {
    	display: none;
	}

	.rgroup {
    	display: none;
	}

	.rgroup:last-child {
    	display: none;
	}

	.rgroup-buttons {
    	display: none;
	}

	.ribtn {
    	display: none;
	}

	.ribtn .btn-text {
    	display: none;
	}

	.ribtn:hover {
    	display: none;
	}

	.ribtn .ico {
    	display: none;
	}

	.rlabel {
    	display: none;
	}

	/* 메인 */
	.ppt-main {
    	display: none;
	}

	.ppt-sidebar {
    	display: none;
	}

	.slide-thumb {
    	display: none;
	}

	.slide-thumb.active {
    	display: none;
	}

	.slide-num {
    	display: none;
	}

	.ppt-workspace {
    	display: none;
	}

	.ppt-slide {
    	display: none;
	}


	.slide-title {
    	display: none;
	}

	.cal-table {
		width: 100%;
		border-collapse: collapse;
		table-layout: fixed;
	}

	.cal-table th {
		border-bottom: 2px solid var(--ppt-orange);
		padding: 10px;
		color: var(--ppt-orange);
		font-weight: 700;
	}

	.cal-table td {
		border: 1px solid #eee;
		height: 90px;
		vertical-align: top;
		padding: 6px;
	}

	.today {
		background-color: #fff4f0;
	}

	.badge {
    	display: none;
	}

	.today-detail {
    	display: none;
	}

	.today-detail h4 {
    	display: none;
	}

	.ppt-status {
    	display: none;
	}
}
