@charset "UTF-8";

.sticker-simulator .viewAreaBox > svg {
    outline: 1px solid #aaa;
    outline-offset: -1px;
}

.sticker-simulator .Content .editor-block .editor {
    background-color: #fff;
    background-image: none;
}

.sticker-simulator.sticker-diecut .Content .editor-block .editor,
.sticker-simulator.sticker-no-background .Content .editor-block .editor {
    background-image: url(/img/bg.png);
    background-repeat: repeat;
    background-size: 10px auto;
}

.sticker-simulator.sticker-diecut .viewAreaBox > svg,
.sticker-simulator.sticker-no-background .viewAreaBox > svg {
    background: transparent !important;
}

.sticker-simulator .Content .step-block .step-wrap .step {
    flex: 1 1 0;
    min-width: 0;
    text-align: center;
}

.sticker-simulator .Content .step-block .step-wrap .text {
    white-space: normal;
    overflow-wrap: anywhere;
}

.sticker-simulator .Content .step-block .step-wrap::before {
    right: 10%;
    left: 10%;
    width: auto;
}

.sticker-simulator [data-pd-role="acrylicBaseDialog"],
.sticker-simulator [data-pd-role="acrylicPreviewBase"] {
    display: none !important;
}

.sticker-cut-options label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 40px;
    margin: 0;
    cursor: pointer;
    font-weight: normal;
}

.sticker-simulator .Content .editor-block .background-menu-btn-wrap {
    top: calc(50% - 72px);
}

.sticker-simulator .Content .editor-block [data-pd-role="acrylicAppendTextWrap"] {
    top: calc(50% + 72px);
}

.sticker-diecut-only,
.sticker-diecut .sticker-halfcut-only {
    display: none;
}

.sticker-diecut .sticker-diecut-only {
    display: block;
}

.sticker-diecut span.sticker-diecut-only {
    display: inline;
}

.sticker-simulator .sticker-cut-options label > span {
    width: 100%;
}

.sticker-cut-options label span::before,
.sticker-cut-options label span::after {
    content: none !important;
}

.sticker-cut-options label > span:first-child {
    display: flex;
    align-items: flex-start;
    gap: 6px;
}

.sticker-cut-options label input {
    flex-shrink: 0;
}

.sticker-simulator .sticker-cut-options label > span > .sticker-cut-example-wrap {
    position: static;
    width: auto;
    padding: 0;
    margin: 0;
}

.sticker-simulator .smoothness-section {
    margin-bottom: 24px;
}

.sticker-simulator .sticker-cut-options label {
    flex-direction: column;
    align-items: flex-start;
    width: calc(50% - 12px);
    min-width: 0;
}

.sticker-cut-example {
    display: block;
    width: 100%;
    max-height: 140px;
    object-fit: contain;
    margin-top: 6px;
}

.sticker-simulator .modal-cutline-select .Modal-title {
    justify-content: center;
    margin-bottom: 24px;
}

.sticker-simulator .sticker-cut-options {
    margin-bottom: 28px;
}

.sticker-simulator .sticker-smoothness-note {
    display: none;
}

.sticker-simulator .modal-cutline-select .scale-bar,
.sticker-simulator .modal-cutline-select .scale-bar .pointer {
    background-color: #ff398d;
}

.sticker-simulator .cutline-error-msg-wrap {
    border: 6px solid #ffd1e2;
    background: #fff;
}

.sticker-simulator .cutline-error-msg-title {
    color: #ff398d;
    background: #ffd1e2;
}

.sticker-simulator [data-pd-error-type="sticker-cutline"] {
    border: 6px solid #ffd1e2;
    border-radius: 0 !important;
    background: #fff !important;
    color: #444 !important;
    font-weight: normal !important;
    text-align: left !important;
}

.sticker-simulator [data-pd-error-type="sticker-cutline"] .sticker-cut-error-fix {
    display: block;
    width: 100%;
    max-width: 240px;
    min-height: 44px;
    margin: 12px auto 0;
    border: 0;
    border-radius: 999px;
    background: #ff398d;
    color: #fff;
    font-size: 15px;
    font-weight: bold;
    cursor: pointer;
}

/* カットラインエラー表示中は工程ボタンを出さず、編集エリア・画像追加・右側のメニューを操作させない */
.sticker-simulator.sticker-cut-error-open [data-pd-role="acrylicMoveFlowWrap"] {
    display: none !important;
}

.sticker-simulator.sticker-cut-error-open .editor-block,
.sticker-simulator.sticker-cut-error-open .editor-block * {
    pointer-events: none !important;
}

.sticker-simulator [data-pd-error-type="sticker-cutline"]::before {
    content: 'カットラインを確認してください';
    display: block;
    margin: -12px -18px 12px;
    padding: 8px 12px;
    background: #ffd1e2;
    color: #ff398d;
    font-weight: bold;
}

.sticker-simulator [data-pd-role="acrylicCutDialog"] {
    width: 700px;
    max-width: calc(100vw - 24px) !important;
    height: fit-content !important;
    max-height: calc(100vh - 24px);
    overflow-y: auto;
}

.sticker-simulator [data-pd-role="acrylicCutDialog"] .iziModal-wrap,
.sticker-simulator [data-pd-role="acrylicCutDialog"] .iziModal-content,
.sticker-simulator [data-pd-role="acrylicCutDialog"] .Modal-content {
    width: 100% !important;
    max-width: 100%;
}

.sticker-simulator [data-pd-role="acrylicCutDialog"] .iziModal-wrap {
    max-height: calc(100vh - 24px);
    overflow-y: auto;
}

.sticker-cut-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
    min-width: 0;
    margin: 0 0 20px;
    padding: 0;
    border: 0;
}

.sticker-cut-options legend,
.sticker-setting-label {
    width: 100%;
    margin: 0 0 8px;
    padding: 0 0 8px;
    border-bottom: 1px solid #ddd;
    font-size: 16px;
    font-weight: bold;
}

.sticker-cut-options input {
    appearance: auto;
    position: static;
    width: 18px;
    height: 18px;
    margin: 0;
    opacity: 1;
    accent-color: #ff398d;
}

.sticker-setting-label label {
    margin: 0;
    font-weight: inherit;
}

.sticker-margin-section {
    margin-bottom: 20px;
}

.sticker-margin-layout {
    display: flex;
    align-items: flex-start;
    gap: 20px;
}

.sticker-margin-sample {
    flex: 0 0 180px;
    width: 180px;
    height: 180px;
    object-fit: contain;
}

.sticker-margin-controls {
    flex: 1 1 auto;
    min-width: 0;
}

.sticker-margin-cut-options {
    display: block;
    margin: 0 0 12px;
}

.sticker-simulator .sticker-margin-cut-options label {
    flex-direction: row;
    align-items: center;
    width: 100%;
    min-height: 30px;
    margin: 0;
}

.sticker-simulator .sticker-margin-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.sticker-margin-input input {
    width: 120px;
    height: 40px;
    padding: 4px 8px;
    border: 1px solid #ccc;
    background: #fff;
    font-size: 16px;
}

.sticker-margin-input {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* 余白の上下ボタン。滑らかさのスピナー(.spinner_area)と同じ寸法・余白で、入力欄と同じ枠の内側に収める。
   小数の余白を保つため専用の処理で1mmずつ変える */
.sticker-margin-input .sticker-margin-spinner {
    display: flex;
    align-items: center;
    width: 88px;
    margin: 0; /* スマホの共通スピナーの左右中央寄せを外し、単位(mm)を入力欄の隣に置く */
    border: 1px solid #ccc;
    border-radius: 4px;
    background: #fff;
}

.sticker-margin-input .sticker-margin-spinner input[type="text"] {
    flex: 1;
    width: auto;
    min-width: 0;
    height: 40px;
    padding: 4px 4px 4px 8px;
    border: 0;
    background: none;
    text-align: right;
}

.sticker-margin-input .sticker-margin-spinner .btnspinner-wrap {
    flex: 0 0 22px;
    width: 22px;
    background: none;
}

.sticker-margin-input .sticker-margin-spinner .btnspinner {
    display: block;
    width: 100%;
    height: 20px;
    padding: 7px 0 0;
    border: 0;
    background: none;
    font-size: 10px;
    line-height: 10px;
    cursor: pointer;
}

.sticker-margin-input .sticker-margin-spinner .btnspinner + .btnspinner {
    padding: 0 0 7px;
}

/* スマホでは追加アップロードボタンが右側の「テキスト入力」タブと重なるため、左下に置く */
.sticker-simulator.sp .Content .editor-block .editor .secondary-btn-wrap {
    right: auto;
    left: 10px;
}

.sticker-margin-help {
    margin: 4px 0 0;
    color: #555;
    font-size: 14px;
    line-height: 1.4;
}

.sticker-cut-note,
.sticker-cut-error {
    margin: 16px 0 0;
    font-size: 14px;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.sticker-cut-error {
    color: #a51b38;
}

.sticker-cut-error:empty {
    display: none;
}

.sticker-target-note {
    padding: 0 16px;
    color: #d40000;
}

.sticker-simulator .modal-cutline-select .btn-inner {
    display: flex;
    justify-content: center;
    margin-top: 20px;
}

.sticker-simulator .modal-cutline-select .btn-block .btn-inner button.next-btn {
    width: auto;
    height: auto;
    min-height: 44px;
    padding: 10px 24px;
    border: 1px solid #ff398d;
    border-radius: 24px;
    background: #ff398d;
    color: #fff;
    font-size: 15px;
    font-weight: bold;
    line-height: 1.5;
    white-space: nowrap;
}

@media (max-width: 480px) {
    .sticker-simulator [data-pd-role="acrylicCutDialog"] .Modal-content {
        padding: 16px;
    }

    .sticker-cut-options label {
        width: 100%;
        min-height: 36px;
        font-size: 16px;
        line-height: 1.5;
    }

    .sticker-simulator .sticker-cut-options {
        gap: 8px 12px;
    }

    .sticker-simulator .sticker-cut-options label {
        width: calc(50% - 6px);
        font-size: 14px;
    }

    /* 余白のカット位置(外側・内側)は、スマホでも1行に1つずつ縦に並べる */
    .sticker-simulator .sticker-margin-cut-options label {
        width: 100%;
    }

    .sticker-cut-example {
        max-height: 120px;
    }

    .sticker-margin-layout {
        gap: 12px;
    }

    .sticker-margin-sample {
        flex-basis: 34%;
        width: 34%;
        height: auto;
    }

    .sticker-margin-help {
        font-size: 12px;
    }
}

.sticker-additional-image-cutout-inner {
    padding: 20px;
    text-align: center;
}

.sticker-additional-image-cutout-inner img {
    display: block;
    width: 100%;
    height: 280px !important;
    max-height: 35vh;
    margin: 16px auto;
    object-fit: contain;
}

.sticker-additional-image-cutout-title {
    margin: 0 0 8px;
    color: #333;
    font-size: 14px;
    font-weight: bold;
}

.sticker-additional-image-cutout-note {
    margin: 0 0 6px;
    color: #333;
    font-size: 13px;
    font-weight: bold;
}

.sticker-additional-image-cutout-warning {
    margin: 0 0 8px;
    color: #f00;
    font-size: 14px;
    font-weight: bold;
    line-height: 1.5;
}

.sticker-additional-image-cutout [data-sticker-cutout-error] {
    color: #c00;
}

.sticker-additional-image-cutout-buttons {
    display: flex;
    gap: 16px;
    margin-top: 16px;
}

.sticker-additional-image-cutout-buttons button {
    flex: 1;
    font-size: 16px;
    min-height: 48px;
    border: 1px solid #aaa;
    border-radius: 6px;
    background: #fff;
    color: #333;
    cursor: pointer;
}

.sticker-additional-image-cutout-buttons [data-sticker-cutout=yes] {
    border-color: #ff398d;
    background: #ff398d;
    color: #fff;
}

.sticker-additional-image-cutout-buttons button:disabled {
    opacity: .5;
    cursor: wait;
}

.sticker-additional-image-cutout.iziModal.transitionIn .iziModal-header,
.sticker-additional-image-cutout.iziModal.transitionIn .iziModal-header * {
    -webkit-animation: none;
    animation: none;
}
