.mind-map {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 20px;
	padding: clamp(10px, 2vw, 20px) 0 clamp(20px, 4vw, 40px);
    text-align: center;
}

.mind-map__title,
.mind-map__info,
.mind-map__copyable-info {
    padding: 0;
    margin: 0;
}
.mind-map__title {
	font-size: clamp(18px, 3vw, 24px);
}
.mind-map__info,
.mind-map__copyable-info {
    color: #444;
	text-align: center;
}

.mind-map__mermaid-input {
    height: clamp(300px, 50vw, 400px);
	max-width: 800px;
	margin: 0 auto;
    padding: clamp(8px, 2vw, 16px);
    border: 1px solid #eaecee;
    font-family: monospace;
    font-size: clamp(12px, 2.5vw, 16px);
    resize: vertical;
    background-color: #f7f8f9;
}
.mind-map__mermaid-input:focus-visible {
    outline: none;
    border: 1px solid #b6bdc3;
}

.mind-map__mermaid-output {
    border: 1px solid #eaecee;
    background-color: #fff;
}

.mind-map__editor,
.mind-map__view,
.mind-map__download {
    display: flex;
    flex-direction: column;
}
.mind-map__editor,
.mind-map__view {
    gap: 10px;
}

.mind-map__editor-buttons,
.mind-map__view-options,
.mind-map__download,
.mind-map__file-size {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
}
.mind-map__editor-buttons,
.mind-map__view-options {
    gap: 6px;
}
.mind-map__download {
    gap: 15px;
}
.mind-map__file-size {
    gap: 10px;
}

.mind-map__update-content,
.mind-map__reset-content,
.mind-map__reset-options,
.mind-map__download-file {
    width: fit-content;
    border: none;
    cursor: pointer;
}
.mind-map__update-content,
.mind-map__reset-content,
.mind-map__reset-options {
    font-size: clamp(12px, 2.5vw, 15px);
	font-weight: 500;
}
.mind-map__update-content,
.mind-map__reset-content {
	padding: clamp(3px, 1vw, 5px) clamp(6px, 2vw, 10px);
}

.mind-map__update-content,
.mind-map__update-content:focus,
.mind-map__update-content:hover {
    background-color: #e3ffe3;
	color: #2c8d33;
	border: 1px solid #c3ffc3;
}

.mind-map__reset-content,
.mind-map__reset-content:focus,
.mind-map__reset-content:hover,
.mind-map__reset-options,
.mind-map__reset-options:focus,
.mind-map__reset-options:hover {
    background-color: #ffe7e7;
	color: #d33a2c;
	border: 1px solid #ffd2d2;
}

.mind-map__download-file {
    font-size: clamp(15px, 3.5vw, 18px);
	font-weight: 700;
	padding: clamp(8px, 1.5vw, 12px) clamp(12px, 3vw, 24px);
}
.mind-map__download-file,
.mind-map__download-file:focus {
    background-color: #007bff;
	color: #fff;
}
.mind-map__download-file:hover {
    background-color: #006de3;
	color: #fff;
}
	
.mind-map__file-size-text {
    font-size: clamp(14px, 3vw, 17px);
}

.mind-map__file-size-note-hook {
    font-size: clamp(15px, 3.5vw, 18px);
    font-weight: bold;
    color: #e00;
    cursor: pointer;
}

.mind-map__file-size-note {
    visibility: hidden;
    opacity: 0;
    position: absolute;
    z-index: 1;
    max-width: 200px;
	font-size: clamp(12px, 2vw, 14px);
    background-color: #f7f8f9;
    border: 1px solid #eaecee;
	padding: clamp(10px, 2vw, 12px);
    transition: opacity 0.5s ease-in-out, visibility 0s linear 0.5s;
	box-shadow: rgba(50, 50, 93, 0.25) 0px 6px 12px -2px, rgba(0, 0, 0, 0.3) 0px 3px 7px -3px;
}

.mind-map__file-size-note--show {
    visibility: visible;
    opacity: 1;
    transition: opacity 0.5s ease-in-out;
}

.mind-map__file-size-input-wrapper {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.mind-map__file-size-input-px-label {
    position: absolute;
    right: clamp(15px, 3.5vw, 30px);
    font-size: clamp(11px, 2vw, 13px);
    color: #999;
}
	
.mind-map__copyable {
    display: flex;
    flex-direction: column;
    align-items: center;
	gap: 20px;
	font-size: clamp(20px, 4vw, 26px);
    color: #222;
	text-align: left;
	margin-top: clamp(15px, 4vw, 30px);
}

.mind-map__copyable-ol {
    counter-reset: item;
    list-style-type: none;
	margin-left: clamp(16px, 4vw, 40px);
}
.mind-map__copyable > .mind-map__copyable-ol {
    margin-left: 0;
}
.mind-map__copyable-ol {
    font-size: 100%;
    color: #007bff;
	margin-bottom: clamp(10px, 2.5vw, 20px);
}
.mind-map__copyable-ol .mind-map__copyable-ol {
    font-size: 95%;
    color: #222;
	margin-bottom: clamp(8px, 2.5vw, 16px);
}
.mind-map__copyable-ol .mind-map__copyable-ol .mind-map__copyable-ol {
    font-size: 90%;
    color: #444;
	margin-bottom: clamp(6px, 2vw, 12px);
}
.mind-map__copyable-ol .mind-map__copyable-ol .mind-map__copyable-ol .mind-map__copyable-ol {
    font-size: 85%;
    color: #666;
	margin-bottom: clamp(4px, 2vw, 8px);
}
.mind-map__copyable-ol .mind-map__copyable-ol .mind-map__copyable-ol .mind-map__copyable-ol .mind-map__copyable-ol {
    font-size: 80%;
    color: #888;
	margin-bottom: clamp(2px, 1.5vw, 4px);
}
	
.mind-map__copyable-li {
    counter-increment: item;
    margin-bottom: clamp(1px, 0.2vw, 3px);
}

.mind-map__copyable-li:before {
    content: counters(item, ".") ". ";
    color: #ccc;
}

.mind-map__copyable-content {
    position: relative;
    cursor: pointer;
    transition: color 0.4s ease;
}
.mind-map__copyable-content:hover {
    text-decoration: underline;
}

.mind-map__copyable-popup {
    display: none;
    position: fixed;
    background-color: #007bff;
    color: #fff;
	padding: clamp(4px, 1.5vw, 6px) clamp(6px, 2vw, 10px);
    border-radius: 4px;
    font-size: clamp(12px, 2vw, 14px);
	font-weight: 500;
    white-space: nowrap;
    z-index: 1000;
    transform: translate(-50%, -100%);
	cursor: default;
}
.mind-map__copyable-popup::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    margin-left: -5px;
    border-width: 5px;
    border-style: solid;
    border-color: #007bff transparent transparent transparent;
}

.mind-map input[type="color"],
.mind-map input[type="number"],
.mind-map input[type="text"],
.mind-map select,
.mind-map__view-options button {
    height: 25px;
	font-size: clamp(12px, 2.5vw, 15px);
    box-sizing: border-box;
    outline: none;
}
.mind-map input[type="color"],
.mind-map input[type="number"],
.mind-map input[type="text"],
.mind-map select {
    border: 1px solid #eaecee !important;
	background-color: #f7f8f9;
}
.mind-map input[type="number"],
.mind-map input[type="text"],
.mind-map select,
.mind-map__view-options button {
    padding: 0 clamp(5px, 1.5vw, 10px);
}
.mind-map input[type="color"],
.mind-map select,
.mind-map__view-options button {
    cursor: pointer;
}
.mind-map input[type="number"]:focus-visible,
.mind-map input[type="text"]:focus-visible {
    outline: none;
    border: 1px solid #007bff !important;
}

.mind-map input[type="radio"] {
    accent-color: #007bff;
    margin: 3px 4px 3px 0px;
}
	
.mind-map ::placeholder {
    color: #999;
    opacity: 1; /* per Firefox */
}
	
.mind-map label,
.mind-map p {
    font-size: clamp(14px, 3vw, 17px);
}
	
.mind-map button {
    outline: none;
}