.converter-page { background: #fbfbfa; color: #202124; }
.converter-intro { padding-bottom: 38px; padding-top: 58px; }
.converter-kicker, .eyebrow { color: #7b5a18; font-size: .73rem; font-weight: 800; letter-spacing: .13em; margin: 0 0 10px; text-transform: uppercase; }
.converter-intro h1 { font-size: clamp(2.25rem, 4vw, 4.2rem); font-weight: 750; letter-spacing: -.055em; line-height: .98; margin: 0; }
.converter-intro > p:last-child { color: #666762; font-size: 1.08rem; line-height: 1.7; margin: 21px 0 0; max-width: 1440px; }
.upload-card, .preview-card, .download-panel { background: #fff; border: 1px solid #dfdfdb; border-radius: 18px; box-shadow: 0 12px 35px rgba(32,33,36,.05); }
.upload-card { overflow: hidden; }
.drop-zone { align-items: center; border: 1px dashed #c9c9c3; border-radius: 13px; cursor: pointer; display: flex; flex-direction: column; gap: 8px; justify-content: center; margin: 18px; min-height: 310px; padding: 38px; text-align: center; transition: .18s ease; }
.drop-zone:hover, .drop-zone.is-dragging, .drop-zone.has-file { background: #fffaf0; border-color: #ffc107; }
.drop-icon { align-items: center; background: #ffc107; border-radius: 50%; color: #261b00; display: flex; font-size: 1.55rem; font-weight: 700; height: 54px; justify-content: center; margin-bottom: 9px; width: 54px; }
.drop-zone strong { font-size: 1.18rem; }
.drop-zone > span:not(.drop-icon):not(.selected-file) { color: #797a75; font-size: .92rem; }
.selected-file { color: #6d5112; font-weight: 700; margin-top: 8px; }
.upload-footer { align-items: center; border-top: 1px solid #e7e7e3; display: flex; justify-content: space-between; padding: 18px; }
.upload-footer p { color: #81827d; font-size: .82rem; margin: 0; }
.converter-alert { background: #fff2ef; border: 1px solid #efc6bc; border-radius: 12px; color: #913e2d; margin-bottom: 18px; padding: 14px 18px; }
.result-grid { display: grid; gap: 22px; grid-template-columns: minmax(0, 1.7fr) minmax(310px, .7fr); }
.preview-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; }
.card-heading { align-items: end; display: flex; justify-content: space-between; padding: 24px 26px 18px; }
.card-heading h2, .download-panel h2 { font-size: 1.55rem; font-weight: 700; letter-spacing: -.03em; margin: 0; }
.rotate-hint { color: #888984; font-size: .76rem; }
.viewer-toolbar { background: #f7f7f5; border: 1px solid #deded9; border-radius: 10px; display: flex; gap: 3px; margin: 0 25px 14px; padding: 3px; width: max-content; }
.viewer-mode { background: transparent; border: 0; border-radius: 7px; color: #6f706c; font-size: .8rem; font-weight: 700; padding: 7px 14px; transition: background-color .15s ease, color .15s ease; }
.viewer-mode.active { background: #fff; box-shadow: 0 1px 4px rgba(20,20,18,.1); color: #262724; }
.viewer-mode:disabled { cursor: wait; opacity: .4; }
.model-viewer { flex: 1 1 520px; min-height: 360px; position: relative; width: 100%; }
.model-viewer canvas { display: block; }
.ring-legend { display: flex; flex-wrap: wrap; gap: 9px 16px; }
.ring-legend span { align-items: center; color: #595a56; display: flex; font-size: .78rem; font-weight: 650; gap: 7px; }
.ring-shape { flex: 0 0 14px; height: 14px; width: 14px; }
.ring-shape polygon { fill: var(--ring-color); stroke: rgba(25, 25, 23, .35); stroke-width: .65; }
.ring-legend em { font-family: Georgia, 'Times New Roman', serif; font-size: 1.05em; font-weight: 400; margin-left: -3px; }
.download-panel { align-self: start; padding: 27px; }
.structure-data { border-bottom: 1px solid #e1e1dc; margin: 0 0 26px; padding: 0 0 25px; }
.structure-data h3 { font-size: .83rem; font-weight: 750; margin: 17px 0 10px; }
.cell-parameters { display: grid; gap: 7px; grid-template-columns: repeat(3, 1fr); }
.cell-parameters span { background: #f7f7f5; border: 1px solid #e5e5e0; border-radius: 8px; display: flex; flex-direction: column; gap: 1px; padding: 8px 10px; }
.cell-parameters small { color: #8a8b86; font-size: .68rem; text-transform: uppercase; }
.cell-parameters strong { color: #353632; font-size: .82rem; font-weight: 700; }
.download-panel > p { color: #777873; font-size: .91rem; line-height: 1.55; margin: 13px 0 23px; }
.download-option { align-items: center; border: 1px solid #deded9; border-radius: 12px; color: inherit; display: flex; justify-content: space-between; margin-top: 11px; padding: 16px; text-decoration: none; transition: .17s ease; }
.download-option:hover { background: #fffaf0; border-color: #ffc107; color: inherit; transform: translateY(-1px); }
.download-option span { display: flex; flex-direction: column; gap: 3px; }
.download-option small { color: #858681; font-size: .73rem; }
.download-option b { align-items: center; background: #ffc107; border-radius: 50%; display: flex; height: 34px; justify-content: center; width: 34px; }
.convert-another { color: #725716; display: inline-block; font-size: .87rem; font-weight: 650; margin-top: 22px; text-decoration: none; }
.result-link { border-top: 1px solid #e1e1dc; display: flex; flex-direction: column; gap: 5px; margin-top: 24px; padding-top: 20px; }
.result-link small { color: #858681; font-size: .68rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.result-link a { color: #6f5516; font-size: .75rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.failed-card { background: #fff; border: 1px solid #dfdfda; border-radius: 16px; box-shadow: 0 12px 35px rgba(32,33,36,.05); max-width: 720px; padding: 32px; }
.failed-card h2 { font-size: 1.6rem; letter-spacing: -.03em; }
.failed-card p { color: #747570; margin: 13px 0 22px; }
.processing-overlay { align-items: center; background: rgba(25,25,24,.78); display: flex; inset: 0; justify-content: center; position: fixed; z-index: 2000; }
.processing-overlay[hidden] { display: none; }
.processing-overlay > div { align-items: center; background: #fff; border-radius: 16px; display: flex; flex-direction: column; gap: 6px; min-width: 300px; padding: 32px; }
.processing-overlay small { color: #777; }
.processing-spinner { animation: spin .75s linear infinite; border: 3px solid #ece7da; border-radius: 50%; border-top-color: #ffc107; height: 36px; margin-bottom: 8px; width: 36px; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (max-width: 900px) { .result-grid { grid-template-columns: 1fr; } .model-viewer { height: 440px; } }
@media (max-width: 600px) { .converter-intro { padding-top: 38px; } .drop-zone { min-height: 250px; padding: 25px 15px; } .upload-footer, .card-heading { align-items: stretch; flex-direction: column; gap: 14px; } .upload-footer .btn { width: 100%; } .model-viewer { height: 350px; } }
