@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@100;300;400;500;700;900&display=swap');

:root {
	--border:#252629;
	--text:#dee1e8;
	--muted:#bfc1c6;
	--white:#ffffff;
	--discord: #7289DA;
	--blurple: #5865F2;

	/* Primary colors */
	--primary: #2563eb;
	--success: #27904d;
	--warning: #f59e0b;
	--danger: #ef4444;
	--white: #ffffff;
	--black: #000000;
	--dead: #141516;
	--primary-dark: #153477;
	--success-dark: #296941;
	--warning-dark: #a76f0e;
	--danger-dark: #3b1a1a;

	/* Background colors */
	--bg:#1d1f20;
	--bg-primary: var(--primary);
	--bg-success: var(--success);
	--bg-warning: var(--warning);
	--bg-danger: var(--danger);
	--bg-primary-dark: var(--primary-dark);
	--bg-success-dark: var(--success-dark);
	--bg-warning-dark: var(--warning-dark);
	--bg-danger-dark: var(--danger-dark);
	--bg-dark: #212328;
	--bg-darker: #1a1c22;
	--bg-darkest: #0b0f19;
	--bg-grey-darkest: #1a1a1a;
	--bg-grey-light: #515151;
	--bg-grey-lighter: #9e9e9e;
	--bg-grey-lightest: #c7c7c7;

	/* Border colors */
	--border-black: #000000;
	--border-dark: #121212;
	--border-light: #333333;
	--border-grey-dark: #222222;
	--border-grey-light: #515151;
	--border-grey-lighter: #9e9e9e;
	--border-grey-lightest: #c7c7c7;
	--border-white: #ffffff;

	/* Button colors */
	--btn-success: var(--success);
	--btn-danger: var(--danger);
	--btn-warning: var(--warning);
	--btn-primary: var(--primary);
	--btn-success-dark: var(--success-dark);
	--btn-danger-dark: var(--danger-dark);
	--btn-warning-dark: var(--warning-dark);
	--btn-primary-dark: var(--primary-dark);
	--btn-disabled: #555555;
	--btn-primary-hover: var(--primary-dark);
	--btn-success-hover: var(--success-dark);
	--btn-danger-hover: var(--danger-dark);
	--btn-warning-hover: var(--warning-dark);
	--btn-disabled-hover: #444444;
	--bg-button: #379354;
	--bg-button-hover: #225b34;
}

html, body {
	margin:0;
	padding:0;
	background:var(--bg);
	color:var(--text);
	font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
}

.container {
	padding-right: 15px;
	padding-left: 15px;
	margin-right: auto;
	margin-left: auto;
}

@media (min-width: 768px) {
	.container {
		width: 750px;
	}
}
@media (min-width: 992px) {
	.container {
		width: 970px;
	}
}
@media (min-width: 1200px) {
	.container {
		width: 1170px;
	}
}

/* optional: square header bottom if the mobile menu is open */
@media (max-width: 639px) {
  	.header {
		border-bottom-left-radius: .5rem;
		border-bottom-right-radius: .5rem;
	}
}

*{
  	transition: height .3s, padding .3s;
}

.ms-pointer {
	cursor: pointer;
}

.card {
	background:var(--bg);
	border:1px solid var(--border);
	border-radius:1rem;
	padding:1.25rem;
	width:100%;
	max-width:56rem;
	box-shadow:0 1px 3px rgba(0,0,0,.06);
}

.muted {
	color:var(--muted);
}

.small {
	font-size:.9rem;
}

.bold {
	font-weight:600;
}

.user {
	display:flex;
	gap:.75rem;
	align-items:center;
	margin:0.5rem 0;
}

.avatar {
	width:2rem;
	height:2rem;
	border-radius:9999px;
}

.actions {
	display:flex;
	gap:.5rem;
	margin-bottom:.5rem;
}

.content-centered {
	display:flex;
	flex-direction:column;
	align-items:center;
}

.title-header {
	margin-top:0;
	margin-bottom:1rem;
}

/* Buttons */
.btn {
    padding: .8rem .8rem;
    border-radius: .4rem;
    color: var(--text);
    cursor: pointer;
}

.btn-sm {
	padding: .2rem .4rem !important;
	border-radius: .4rem;
	color: var(--text);
	cursor: pointer;
}

.btn-large {
	padding: .8rem 1.2rem !important;
	border-radius: .4rem;
	color: var(--text);
	cursor: pointer;
}

.btn-xl {
	padding: 1rem 1.5rem !important;
	border-radius: .4rem;
	color: var(--text);
	cursor: pointer;
}

.btn-xxl {
	padding: 1.2rem 2rem !important;
	border-radius: .4rem;
	color: var(--text);
	cursor: pointer;
}

/* Standard Buttons */
.btn-primary {
	background: var(--btn-primary);
}

.btn-success {
	background: var(--btn-success);
}

.btn-warning {
	background: var(--btn-warning);
}

.btn-danger {
	background: var(--btn-danger);
}

.btn-primary:hover {
	background:var(--btn-primary-hover);
}

.btn-success:hover {
	background:var(--btn-success-hover);
}

.btn-warning:hover {
	background:var(--btn-warning-hover);
}

.btn-danger:hover {
	background:var(--btn-danger-hover);
}

/* Dark Buttons */
.btn-primary-dark {
	background: var(--btn-primary-dark);
}

.btn-success-dark {
	background: var(--btn-success-dark);
}

.btn-warning-dark {
	background: var(--btn-warning-dark);
}

.btn-danger-dark {
	background: var(--btn-danger-dark);
}

.btn-primary-dark:hover {
	background:var(--btn-primary);
}

.btn-success-dark:hover {
	background:var(--btn-success);
}

.btn-warning-dark:hover {
	background:var(--btn-warning);
}

.btn-danger-dark:hover {
	background:var(--btn-danger);
}

/* Outlined Buttons */
.btn-outlined {
	padding: .2rem .2rem;
	border-radius: .4rem;
	border: 1px solid var(--bg-grey-light);
	color: var(--text);
	background: transparent;
	cursor: pointer;
}

.btn-outlined:hover {
	background: var(--bg-grey-light);
}

.btn-success-outlined {
	padding: .2rem .2rem;
	border-radius: .4rem;
	border: 1px solid var(--bg-grey-light);
	color: var(--text);
	background: transparent;
	cursor: pointer;
}

.btn-success-outlined:hover {
	background: var(--btn-success-dark);
}

.btn-primary-outlined {
	padding: .2rem .2rem;
	border-radius: .4rem;
	border: 1px solid var(--primary);
	color: var(--text);
	background: transparent;
	cursor: pointer;
}

.btn-primary-outlined:hover {
	background: var(--bg-primary);
}

button {
    padding: .8rem .8rem;
    border-radius: .4rem;
	border: 0px;
    color: var(--text);
    cursor: pointer;
}

button:hover {
	background: var(--bg-button-hover);
}

.border-light {
	background: transparent;
	border: 1px solid var(--border-grey-light);
}

.border-light:hover {
	background: var(--bg-success-dark);
	border: 1px solid var(--primary);
}

.bg-border-light {
	background: var(--border-grey-light);
}

input[type="file"] {
	display:block;
	margin:.5rem 0;
	border-color: var(--bg-grey-darkest);
}

input[type="file"]::file-selector-button {
    padding: .8rem .8rem;
	border-radius: .4rem;
	border: 0px;
	background: var(--bg-grey-lightest);
	color: var(--text);
	cursor: pointer;
}

input[type="file"]::file-selector-button:hover {
  	background-color: var(--bg-grey-darkest);
}

.error {
	color:var(--danger);
	margin-top:.5rem;
}

.success {
	color:var(--success);
	margin-top:.5rem;
	word-break:break-all;
}

a {
	color:var(--primary);
}

.dropzone {
	margin:.75rem 0;
	cursor: pointer;
}

.dz-box {
	position:relative;
	border:2px dashed var(--border);
	border-radius:1rem;
	padding:1.5rem;
	text-align:center;
	background:var(--bg);
	transition: border-color .2s, background .2s;
}

.dz-hover {
	border-color:var(--primary);
	background:var(--bg);
}

.dz-label {
	color:var(--muted);
	margin-bottom:.25rem;
}

.dz-input {
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	opacity:0;
	cursor:pointer;
}

.btn-copy {
	margin-left:.5rem;
}

.tabs {
	display:flex;
	gap:.5rem;
	margin:.5rem 0 1rem 0;
}

.tabs button.active {
	background:var(--bg);
	border-color:var(--bg-grey-lightes);
}

.album-create {
	display:flex;
	gap:.5rem;
	align-items:center;
	margin: .5rem 0 1rem 0;
}

.album-create input {
	flex:1;
	padding:.5rem .6rem;
	border:1px solid var(--border);
	border-radius:.5rem;
}

.thumbs {
	display:flex;
	flex-wrap:wrap;
	gap:.5rem;
	margin:.5rem 0;
}

.thumb {
	padding:.25rem .5rem;
	border:1px solid var(--border);
	border-radius:.5rem;
	background:var(--bg);
}

.grid {
	display:grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap:.5rem;
}

.cell {
	border:1px solid var(--border);
	border-radius:.5rem;
	background:var(--bg);
	overflow:hidden;
}

.cell img {
	width:100%;
	height:160px;
	object-fit:cover;
	display:block;
}

/* --- Descriptions / public album polish --- */
.header-row {
	display:flex;
	justify-content:space-between;
	align-items:center;
	gap:.5rem;
}

.m0 {
	margin:0;
}

.desc {
	padding:.5rem;
	border-top:1px solid var(--border);
}

.desc textarea {
	width:100%;
	border:1px solid var(--border);
	border-radius:.5rem;
	padding:.4rem;
	font:inherit;
	resize:vertical;
}

.desc .btn {
	margin-top:.4rem;
}

.desc-view {
	padding:.25rem .5rem .5rem;
}

/* --- Imgur-style album layout --- */
.album-wrap {
	max-width: 980px;
	margin: 0 auto;
}

.album-item {
	background: var(--bg);
	border: 1px solid var(--border);
	border-radius: .75rem;
	overflow: hidden;
	margin: 1rem 0 1.25rem;
	box-shadow: 0 6px 16px rgba(0,0,0,.06);
}

.album-media {
  	background: var(--bg);
}

.album-media img {
	display: block;
	width: 100%;
	height: auto;
}

.album-meta {
  	padding: .75rem .9rem .9rem;
}

.album-links {
	display: flex;
	gap: .75rem;
	align-items: center;
	margin-top: .5rem;
}

.album-links .small {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.caption {
	margin-top: .25rem;
	color: var(--text);
	line-height: 1.5;
}

.caption-empty {
	color: var(--muted);
	font-style: italic;
}

/* owner editor */
.caption-edit textarea {
	width: 100%;
	min-height: 64px;
	color: var(--text);
	background-color: var(--bg-dark);
	border: 1px solid var(--border-black);
	border-radius: .5rem;
	padding: .5rem .6rem;
	font: inherit;
	resize: vertical;
}

.btn-row {
	display: flex;
	gap: .5rem;
	margin-top: .5rem;
}

/* header */
.album-header {
	max-width: 980px;
	margin: .25rem auto 1rem;
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: .75rem;
}

.album-header .title {
	margin: 0;
}

.album-header .count {
	color: var(--muted);
}

/* Lightbox */
.lightbox {
	position: fixed; inset: 0;
	background: rgba(0,0,0,.9);
	display: flex; align-items: center; justify-content: center;
	z-index: 9999;
}

.lightbox-inner {
	position: relative;
	max-width: 96vw;
	max-height: 90vh;
}

.lightbox img {
	max-width: 96vw;
	max-height: 90vh;
	display: block;
}

.lightbox .close, .lightbox .nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	color: var(--bg);
	background: rgba(255,255,255,.15);
	border: 1px solid rgba(255,255,255,.25);
	padding: .5rem .75rem;
	border-radius: .5rem;
	cursor: pointer;
	user-select: none;
}

.lightbox .close {
	top: 2%;
	right: 2%;
	transform: none;
}

.lightbox .nav.prev {
	left: -3.5rem;
}

.lightbox .nav.next {
	right: -3.5rem;
}

@media (max-width: 1024px) {
  	.lightbox .nav.prev {
		left: .75rem;
	}

	.lightbox .nav.next {
		right: .75rem;
	}
}

.logo{
    display: flex;
    align-items: center;
    justify-content: center;
}

.discord-button {
    background-color: var(--discord);
    border: none;
    color: var(--white);
    padding: 12px 24px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    font-family: 'Roboto Medium', sans-serif;
    border-radius: 10px;
}

.discord-button:hover{
	background-color: var(--blurple);
	cursor: pointer;
}

.navigation{
	margin-bottom: 20px;
	display: flex;
	gap: 10px;
	justify-content: center;
}

.tabs-nav{
	padding: 10px 20px;
	border-radius: 10px;
}

.user-nav{
	padding: 10px 20px;
	border-radius: 10px;
}

.login-button {
	margin-left: 10px;
	align-self: center;
}

.header {
	position: relative;
}

/* Upload dropdown */
.upload-menu {
	position: absolute;
	right: 33.4rem;
	top: 4rem; /* adjust if header height changes */
	background: var(--bg);
	color: var(--text);
	border-top: 0px;
	border-right: 1px solid var(--border);
	border-left: 1px solid var(--border);
	border-bottom: 1px solid var(--border);
	min-width: 115px;
	z-index: 2000;
	padding: .2rem;
}

.upload-trigger {
	border: 0;
	background: transparent;
}

/* Profile dropdown */
.profile-menu {
	position: absolute;
	right: 0rem;
	top: 4rem; /* adjust if header height changes */
	background: var(--bg);
	color: var(--text);
	border-top: 0px;
	border-right: 1px solid var(--border);
	border-left: 1px solid var(--border);
	border-bottom: 1px solid var(--border);
	min-width: 260px;
	z-index: 2000;
	padding: .5rem;
}

.profile-trigger {
	border: 0;
	background: transparent;
}

.pm-header {
	padding: .5rem .75rem;
}

.pm-name {
	font-weight: 600;
	color: var(--text);
}

.pm-name a:hover, a:visited, a:link, a:active  {
	text-decoration: none;
}

.pm-sep {
	border-top: 1px solid var(--border);
	margin: .4rem 0;
}

.pm-list {
	list-style: none;
	margin: 0;
	padding: .25rem 0;
}

.pm-list li a {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .5rem .75rem;
    color: var(--text);
    text-decoration: none;
}

.pm-list li a:hover {
    background: var(--bg-grey-darkest);
}

.pm-logout {
    display: flex;
	align-items: center;
	gap: .5rem;
    padding: .5rem .75rem;
    color: var(--text);
}

.pm-logout:hover {
    text-decoration: none;
    background: var(--bg-danger-dark);
	cursor: pointer;
	border: none;
}

.myalbums-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: .9rem;
}

.myalbum-card {
    border: 1px solid var(--border);
    border-radius: .75rem;
    overflow: hidden;
    background: var(--bg);
}

.myalbum-card .thumb-wrap {
	display: block;
	background: var(--border-dark);
	aspect-ratio: 16/9;
	overflow: hidden;
}

.myalbum-card .thumb-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.thumb-empty {
	width: 100%;
	height: 100%;
	display: grid;
	place-items: center;
	color: var(--muted);
	font-style: italic;
}

.myalbum-card .meta {
  	padding: .6rem .75rem .75rem;
}

.title-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: .5rem;
}

.title-row .title {
	color: var(--text);
	text-decoration: none;
	font-weight: 600;
}

.title-row .title:hover {
	text-decoration: underline;
}

.title-row .count {
	font-size: .85rem;
	color: var(--muted);
}

.imagePreview {
	max-width: 100%;
	height: auto;
	border: 1px solid var(--border);
	border-radius: .5rem;
	margin-top: .5rem;
}

.imgpreview {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	border-radius: .5rem;
}

.imggrid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: .9rem;
}

.imgcard {
	border: 1px solid var(--border);
	border-radius: .75rem;
	overflow: hidden;
	background: var(--bg);
}

.imgcard .thumb {
	display: block;
	background: var(--border-dark);
	aspect-ratio: 1 / 1;
	overflow: hidden;
}

.imgcard .thumb img {
  	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.imgcard .meta {
  	padding: .6rem .75rem .75rem;
}

.pager {
	display:flex;
	gap:.5rem;
	align-items:center;
	justify-content:center;
	margin-top: 1rem;
}

.desc-tooltip-wrapper {
	position: relative;
	display: inline-block;
	cursor: pointer;
	max-width: 100%;
}

/* truncated text */
.desc-text {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* full tooltip bubble */
.desc-tooltip {
	display: none;
	position: absolute;
	bottom: 125%;
	left: 50%;
	transform: translateX(-50%);
	background: var(--bg-grey-darkest);
	color: var(--white);
	padding: 6px 10px;
	border-radius: 6px;
	font-size: 13px;
	white-space: normal;
	max-width: 250px;
	z-index: 1000;
	line-height: 1.3;
	box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}

/* little arrow */
.desc-tooltip::after {
	content: "";
	display: block;
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	border-width: 6px;
	border-style: solid;
	border-color: #111 transparent transparent transparent;
	z-index: 1001 !important;
}

/* reveal on hover */
.desc-tooltip-wrapper:hover .desc-tooltip {
  	display: block;
}
