:root {
    --ppt-ink: #132238;
    --ppt-muted: #68758a;
    --ppt-line: #dce4ef;
    --ppt-blue: #2563eb;
    --ppt-blue-soft: #eff6ff;
    --ppt-navy: #12233e;
    --ppt-green: #0f9f6e;
    --ppt-shadow: 0 18px 45px rgba(36, 62, 99, .08);
}

.ppt-main { padding: 1.5rem 0 3rem; }
.ppt-container { max-width: 1500px; }

.ppt-hero {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    align-items: flex-end;
    padding: 2rem 2.25rem;
    color: white;
    border-radius: 1.25rem;
    background:
        radial-gradient(circle at 85% 15%, rgba(92, 165, 255, .42), transparent 26%),
        linear-gradient(128deg, #111f37 0%, #173b76 58%, #1f6fe5 100%);
    box-shadow: var(--ppt-shadow);
}

.ppt-hero h2 { max-width: 850px; margin: .35rem 0 .55rem; font-size: clamp(1.55rem, 2.6vw, 2.7rem); line-height: 1.2; }
.ppt-hero p { max-width: 860px; color: #dce9ff; line-height: 1.75; }
.eyebrow, .section-kicker { display: block; color: #67b3ff; font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.hero-badges { display: grid; grid-template-columns: repeat(2, max-content); gap: .55rem; flex: 0 0 auto; }
.hero-badges span { padding: .45rem .72rem; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; background: rgba(255,255,255,.09); font-size: .78rem; }

.workflow-steps {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    margin: 1.15rem 0;
    padding: .7rem;
    background: white;
    border: 1px solid var(--ppt-line);
    border-radius: 1rem;
    box-shadow: 0 8px 24px rgba(36,62,99,.05);
}
.workflow-steps li { position: relative; display: flex; align-items: center; gap: .7rem; padding: .55rem 1rem; color: var(--ppt-muted); }
.workflow-steps li:not(:last-child)::after { content: ''; position: absolute; right: 0; width: 1px; height: 34px; background: var(--ppt-line); }
.workflow-steps b { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: #eef2f7; color: #536176; }
.workflow-steps span { display: grid; line-height: 1.2; }
.workflow-steps strong { color: var(--ppt-ink); font-size: .9rem; }
.workflow-steps small { margin-top: .2rem; font-size: .73rem; }
.workflow-steps .is-active b { color: white; background: var(--ppt-blue); box-shadow: 0 5px 12px rgba(37,99,235,.25); }

.ppt-status { margin-bottom: 1rem; padding: .8rem 1rem; border-radius: .75rem; font-size: .9rem; }
.ppt-status.info { color: #1e4d8c; background: #eaf3ff; border: 1px solid #bdd9ff; }
.ppt-status.success { color: #086c4a; background: #eafaf4; border: 1px solid #afe6d1; }
.ppt-status.error { color: #a52424; background: #fff0f0; border: 1px solid #ffc9c9; }

.ppt-workspace {
    display: grid;
    grid-template-columns: 255px minmax(500px, 1fr) 270px;
    min-height: 650px;
    border: 1px solid var(--ppt-line);
    border-radius: 1.15rem;
    overflow: hidden;
    background: white;
    box-shadow: var(--ppt-shadow);
}
.template-sidebar, .property-sidebar { padding: 1.1rem; background: #fbfcfe; }
.template-sidebar { border-right: 1px solid var(--ppt-line); }
.property-sidebar { border-left: 1px solid var(--ppt-line); }
.panel-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: .85rem; }
.panel-heading h3 { margin-top: .12rem; font-size: 1rem; color: var(--ppt-ink); }
.section-kicker { color: #47709f; }
.icon-button { width: 2.15rem; height: 2.15rem; border: 0; border-radius: .65rem; background: var(--ppt-blue); color: white; font-size: 1.35rem; cursor: pointer; }
.compact-upload { display: grid; gap: .1rem; padding: .8rem; border: 1px dashed #9ab9df; border-radius: .75rem; background: var(--ppt-blue-soft); color: #20569b; cursor: pointer; }
.compact-upload span { font-size: .85rem; font-weight: 700; }
.compact-upload small { color: #6b83a0; line-height: 1.4; }
.template-list { display: grid; gap: .7rem; margin-top: 1rem; }
.template-card { position: relative; display: grid; grid-template-columns: 82px 1fr; gap: .7rem; align-items: center; padding: .55rem; border: 1px solid var(--ppt-line); border-radius: .8rem; background: white; cursor: pointer; text-align: left; }
.template-card:hover { border-color: #9ab9df; transform: translateY(-1px); }
.template-card.is-active { border-color: var(--ppt-blue); box-shadow: 0 0 0 2px rgba(37,99,235,.1); }
.template-card img { width: 82px; height: 52px; object-fit: cover; border-radius: .35rem; background: #eef2f7; }
.template-card strong { display: block; color: var(--ppt-ink); font-size: .83rem; line-height: 1.3; }
.template-card small { display: block; margin-top: .2rem; color: var(--ppt-muted); font-size: .7rem; }
.template-delete { position: absolute; right: .3rem; top: .25rem; border: 0; background: transparent; color: #9aa6b5; cursor: pointer; }
.template-delete:hover { color: #d63031; }
.sidebar-note { margin-top: 1rem; padding: .85rem; border-radius: .75rem; background: #f0f4f9; color: #627086; font-size: .75rem; line-height: 1.55; }
.sidebar-note strong { color: var(--ppt-ink); }

.editor-column { min-width: 0; background: #f3f6fa; }
.editor-toolbar { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding: .65rem .8rem; background: white; border-bottom: 1px solid var(--ppt-line); }
.toolbar-group { display: flex; flex-wrap: wrap; gap: .35rem; }
.tool-button { border: 1px solid var(--ppt-line); border-radius: .55rem; background: white; color: #40516a; padding: .52rem .65rem; cursor: pointer; font-size: .78rem; }
.tool-button span { margin-right: .25rem; font-weight: 800; }
.tool-button:hover:not(:disabled) { color: var(--ppt-blue); border-color: #a9c8ef; background: #f7fbff; }
.tool-button:disabled { opacity: .45; cursor: not-allowed; }
.tool-button-accent { color: #0d7352; border-color: #a5dec9; background: #edfbf6; }
.tool-button.danger { color: #b23b3b; }
.canvas-shell { display: grid; place-items: center; min-height: 550px; padding: 1.2rem; overflow: auto; }
.canvas-empty { text-align: center; color: #8a97a9; }
.canvas-empty div { font-size: 3rem; opacity: .45; }
.template-stage { position: relative; width: 100%; max-width: 960px; max-height: 540px; background: white; box-shadow: 0 12px 30px rgba(36,62,99,.18); user-select: none; }
.template-stage > img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; pointer-events: none; }
.field-layer { position: absolute; inset: 0; overflow: hidden; }
.field-box { position: absolute; display: flex; align-items: center; min-width: 24px; min-height: 18px; border: 1.5px dashed rgba(37,99,235,.8); background: rgba(37,99,235,.09); cursor: move; overflow: hidden; }
.field-box::before { content: attr(data-key); position: absolute; left: 0; top: 0; max-width: 100%; padding: 1px 4px; color: white; background: rgba(16,39,76,.82); font: 600 9px/1.4 sans-serif; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; pointer-events: none; }
.field-box.is-selected { border-style: solid; border-color: #f97316; background: rgba(249,115,22,.12); box-shadow: 0 0 0 2px rgba(249,115,22,.2); z-index: 10; }
.field-box .resize-handle { position: absolute; right: -1px; bottom: -1px; width: 13px; height: 13px; border-radius: 4px 0 0; background: #f97316; cursor: nwse-resize; }
.canvas-help { padding: 0 1.2rem 1rem; color: #7b8797; text-align: center; font-size: .75rem; }

.property-empty { padding: 1rem; color: #7a8798; background: #f2f5f9; border-radius: .75rem; font-size: .8rem; line-height: 1.55; }
.property-form { display: grid; gap: .75rem; }
.property-form label, .mapping-panel label { display: grid; gap: .28rem; color: #59677b; font-size: .72rem; font-weight: 700; }
.property-form input, .property-form select, .mapping-panel select { width: 100%; min-width: 0; padding: .52rem .58rem; border: 1px solid #d5dee9; border-radius: .5rem; background: white; color: var(--ppt-ink); font: inherit; }
.property-form input[type="color"] { height: 37px; padding: 3px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
.checkbox-line { grid-template-columns: auto 1fr !important; align-items: center; font-weight: 500 !important; }
.checkbox-line input { width: auto; }
.property-form details { border-top: 1px solid var(--ppt-line); padding-top: .65rem; }
.property-form summary { cursor: pointer; color: #52647c; font-size: .75rem; font-weight: 700; }
.position-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; margin-top: .6rem; }

.data-section, .output-section { margin-top: 1.2rem; padding: 1.4rem; border: 1px solid var(--ppt-line); border-radius: 1.1rem; background: white; box-shadow: var(--ppt-shadow); }
.section-title-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 1.5rem; }
.section-title-row h2 { margin: .2rem 0; color: var(--ppt-ink); font-size: 1.35rem; }
.section-title-row p { max-width: 820px; color: var(--ppt-muted); font-size: .85rem; }
.section-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; }
.file-button { cursor: pointer; }
.data-import-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(240px, .6fr); gap: 1rem; margin-top: 1rem; }
.paste-panel, .mapping-panel { padding: 1rem; border: 1px solid var(--ppt-line); border-radius: .8rem; background: #fbfcfe; }
.paste-panel > label { display: block; margin-bottom: .45rem; color: var(--ppt-ink); font-size: .8rem; font-weight: 700; }
.paste-panel textarea { width: 100%; min-height: 125px; padding: .75rem; resize: vertical; border: 1px solid #d2dce8; border-radius: .6rem; background: white; color: #25364e; font: 13px/1.55 ui-monospace, SFMono-Regular, Menlo, monospace; }
.paste-actions { display: flex; justify-content: space-between; align-items: center; gap: .8rem; margin-top: .6rem; }
.paste-actions span { color: var(--ppt-muted); font-size: .73rem; }
.mapping-panel h3 { margin-bottom: .25rem; color: var(--ppt-ink); font-size: .95rem; }
.mapping-panel p { margin-bottom: .75rem; color: var(--ppt-muted); font-size: .75rem; line-height: 1.5; }
.asset-summary { margin-top: .75rem; padding: .65rem; border-radius: .55rem; background: #eef3f8; color: #617087; font-size: .73rem; }
.table-toolbar { display: flex; align-items: center; gap: 1rem; margin-top: 1rem; color: #506178; font-size: .8rem; }
.text-button { border: 0; background: transparent; color: var(--ppt-blue); cursor: pointer; font-weight: 700; }
.data-table-wrap { margin-top: .55rem; overflow: auto; border: 1px solid var(--ppt-line); border-radius: .75rem; }
.data-table { width: 100%; border-collapse: collapse; font-size: .78rem; }
.data-table th { position: sticky; top: 0; z-index: 2; padding: .65rem .55rem; background: #edf3fa; color: #40526c; text-align: left; white-space: nowrap; }
.data-table td { min-width: 140px; padding: .38rem; border-top: 1px solid #e9eef4; border-right: 1px solid #eef2f6; background: white; }
.data-table td:first-child { min-width: 42px; width: 42px; text-align: center; color: #8996a7; }
.data-table input { width: 100%; padding: .42rem; border: 1px solid transparent; border-radius: .35rem; background: transparent; font: inherit; }
.data-table input:focus { outline: 0; border-color: #9fc4f3; background: #f7fbff; }
.data-table td.is-missing { background: #fff3f3; }
.data-table td.is-missing input { color: #a33a3a; }
.data-table td.is-missing input::placeholder { color: #d06b6b; }
.row-delete { border: 0; background: transparent; color: #c05b5b; cursor: pointer; }
.image-cell { display: flex; align-items: center; gap: .4rem; }
.image-cell img { width: 38px; height: 28px; border-radius: .25rem; object-fit: cover; }

.output-empty { display: grid; place-items: center; min-height: 180px; margin-top: 1rem; border: 1px dashed #c8d4e2; border-radius: .8rem; color: #8a97a8; }
.output-empty span { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: #eef4fb; color: #4c79ad; }
.output-empty p { margin-top: -.8rem; font-size: .85rem; }
.output-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1rem; margin-top: 1rem; }
.output-card { overflow: hidden; border: 1px solid var(--ppt-line); border-radius: .85rem; background: #fbfcfe; }
.output-preview-button { display: block; width: 100%; padding: 0; border: 0; background: #e8eef6; cursor: zoom-in; }
.output-preview-button img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: contain; background: #e8eef6; transition: transform .18s ease, filter .18s ease; }
.output-preview-button:hover img { transform: scale(1.012); filter: brightness(.96); }
.output-meta { display: flex; justify-content: space-between; align-items: center; gap: .8rem; padding: .75rem; }
.output-meta strong { display: block; max-width: 210px; color: var(--ppt-ink); font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.output-meta small { color: var(--ppt-muted); }
.output-actions { display: flex; gap: .35rem; }
.mini-button { display: inline-flex; align-items: center; justify-content: center; border: 1px solid #cdd8e5; border-radius: .45rem; background: white; color: #355372; padding: .4rem .5rem; cursor: pointer; font-size: .7rem; text-decoration: none; }
.mini-button:hover { border-color: #8eb7eb; color: var(--ppt-blue); }

.ppt-body .image-preview-toolbar .preview-fit-btn { display: inline-flex; align-items: center; text-decoration: none; }

@media (max-width: 1180px) {
    .ppt-workspace { grid-template-columns: 220px minmax(470px, 1fr); }
    .property-sidebar { grid-column: 1 / -1; border-left: 0; border-top: 1px solid var(--ppt-line); }
    .property-form { grid-template-columns: repeat(4, 1fr); align-items: end; }
    .property-form > label, .property-form > details { min-width: 0; }
}

@media (max-width: 820px) {
    .ppt-hero, .section-title-row { align-items: flex-start; flex-direction: column; }
    .hero-badges { grid-template-columns: repeat(2, 1fr); width: 100%; }
    .workflow-steps { grid-template-columns: repeat(2, 1fr); }
    .ppt-workspace { grid-template-columns: 1fr; }
    .template-sidebar, .property-sidebar { border: 0; border-bottom: 1px solid var(--ppt-line); }
    .template-list { grid-template-columns: repeat(2, 1fr); }
    .editor-column { min-width: 0; }
    .editor-toolbar { align-items: flex-start; flex-direction: column; }
    .data-import-grid { grid-template-columns: 1fr; }
    .property-form { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 520px) {
    .ppt-hero { padding: 1.4rem; }
    .workflow-steps { grid-template-columns: 1fr 1fr; }
    .workflow-steps li { padding: .4rem; }
    .workflow-steps li::after { display: none; }
    .template-list, .property-form { grid-template-columns: 1fr; }
    .section-actions { justify-content: flex-start; }
    .canvas-shell { min-height: 300px; padding: .55rem; }
}

/* App-like workflow: keep the current task in one viewport instead of stacking every module. */
body.ppt-body {
    height: 100vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.ppt-body > .header { flex: 0 0 auto; }
.ppt-body .header-content { padding: .55rem 0; }
.ppt-body .logo-icon { width: 2.65rem; height: 2.65rem; border-radius: .65rem; }
.ppt-body .logo-text h1 { margin: 0; font-size: 1.25rem; }
.ppt-body .logo-text p { font-size: .73rem; }
.ppt-body > .footer { display: none; }

.ppt-body .ppt-main {
    flex: 1 1 auto;
    min-height: 0;
    padding: .65rem 0;
    overflow: hidden;
}

.ppt-body .ppt-container {
    height: 100%;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.ppt-body .ppt-hero {
    flex: 0 0 auto;
    min-height: 0;
    align-items: center;
    padding: .6rem 1rem;
    gap: .5rem 1rem;
    border-radius: .9rem;
}

.ppt-body .ppt-hero > div:first-child {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .15rem .65rem;
    min-width: 0;
}

.ppt-body .ppt-hero .eyebrow { font-size: .6rem; letter-spacing: .1em; }

.ppt-body .ppt-hero h2 {
    margin: 0;
    font-size: 1.125rem;
}

.ppt-body .ppt-hero p { flex-basis: 100%; font-size: .78rem; line-height: 1.45; }
.ppt-body .hero-badges { display: flex; flex-wrap: wrap; gap: .4rem; }
.ppt-body .hero-badges span { padding: .3rem .6rem; font-size: .7rem; }

.ppt-body .workflow-steps {
    flex: 0 0 auto;
    grid-template-columns: repeat(3, 1fr);
    margin: .55rem 0;
    padding: .25rem;
    border-radius: .8rem;
}

.ppt-body .workflow-steps li { padding: 0; }
.ppt-body .workflow-steps li:not(:last-child)::after { height: 28px; z-index: 2; }
.workflow-tab {
    width: 100%;
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .42rem .85rem;
    border: 0;
    border-radius: .65rem;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
}
.workflow-tab:hover { background: #f5f8fc; }
.workflow-steps li.is-active .workflow-tab { background: #edf5ff; }
.ppt-body .workflow-steps b { width: 1.8rem; height: 1.8rem; }
.ppt-body .workflow-steps strong { font-size: .82rem; }
.ppt-body .workflow-steps small { font-size: .68rem; }

.ppt-body .ppt-status {
    position: fixed;
    right: 1rem;
    top: 4.8rem;
    bottom: auto;
    z-index: 1000;
    max-width: min(520px, calc(100vw - 2rem));
    margin: 0;
    padding: .7rem .9rem;
    box-shadow: 0 12px 34px rgba(27, 47, 78, .18);
}

.workflow-panel {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.workflow-panel[hidden] { display: none !important; }
.property-form[hidden],
.property-empty[hidden],
.output-empty[hidden] { display: none !important; }

.ppt-body .btn-primary {
    width: auto;
    background: var(--ppt-blue);
}
.ppt-body .btn-primary:hover:not(:disabled) { background: #1d4ed8; }

.workflow-footer {
    flex: 0 0 auto;
    min-height: 54px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .8rem;
    padding: .5rem .7rem .05rem;
}

.workflow-footer > div {
    display: grid;
    margin-right: auto;
    line-height: 1.3;
}

.workflow-footer > div strong { color: var(--ppt-ink); font-size: .78rem; }
.workflow-footer > div span { color: var(--ppt-muted); font-size: .7rem; }
.workflow-footer .btn { width: auto; min-width: 210px; }

.ppt-body .ppt-workspace {
    flex: 1 1 auto;
    min-height: 0;
    height: auto;
    border-radius: .9rem;
}

.ppt-body .template-sidebar,
.ppt-body .property-sidebar {
    min-height: 0;
    overflow-y: auto;
    padding: .85rem;
}

.ppt-body .editor-column {
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.ppt-body .editor-toolbar { flex: 0 0 auto; min-height: 50px; padding: .45rem .6rem; }
.ppt-body .canvas-shell { flex: 1 1 auto; min-height: 0; padding: .75rem; }
.ppt-body .canvas-help { flex: 0 0 auto; padding: 0 .8rem .55rem; }
.ppt-body .template-stage { max-width: 900px; max-height: 100%; }
.ppt-body .sidebar-note { margin-top: .7rem; padding: .65rem; }
.ppt-body .field-box .resize-handle { display: none; }
.ppt-body .field-box.is-selected .resize-handle { display: block; }

.ppt-body .data-section,
.ppt-body .output-section {
    flex: 1 1 auto;
    min-height: 0;
    margin: 0;
    padding: 1rem;
    border-radius: .9rem;
}

.ppt-body .data-section {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.ppt-body .data-import-grid { flex: 0 0 auto; margin-top: .7rem; }
.ppt-body .paste-panel textarea { min-height: 82px; max-height: 110px; }
.ppt-body .table-toolbar { flex: 0 0 auto; margin-top: .65rem; }
.ppt-body .data-table-wrap { flex: 1 1 auto; min-height: 130px; margin-top: .4rem; }
.ppt-body .output-section { overflow-y: auto; }
.ppt-body .output-grid { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }

@media (min-width: 900px) and (max-width: 1180px) {
    .ppt-body .ppt-workspace { grid-template-columns: 205px minmax(420px, 1fr) 235px; }
    .ppt-body .property-sidebar { grid-column: auto; border-top: 0; border-left: 1px solid var(--ppt-line); }
    .ppt-body .property-form { grid-template-columns: 1fr; }
}

@media (max-height: 760px) and (min-width: 821px) {
    .ppt-body .ppt-hero { min-height: 48px; padding: .45rem 1rem; }
    .ppt-body .workflow-steps { margin: .35rem 0; }
    .ppt-body .workflow-footer { min-height: 46px; }
}

@media (max-width: 820px) {
    body.ppt-body { height: auto; min-height: 100vh; overflow: auto; }
    .ppt-body .ppt-main { overflow: visible; }
    .ppt-body .ppt-container { height: auto; }
    .ppt-body .ppt-hero { align-items: flex-start; }
    .ppt-body .hero-badges { width: auto; }
    .ppt-body .workflow-steps { position: sticky; top: 64px; z-index: 40; }
    .workflow-tab { padding: .4rem; justify-content: center; text-align: center; }
    .workflow-tab span { display: none; }
    .workflow-panel { min-height: 680px; overflow: visible; }
    .ppt-body .ppt-workspace { min-height: 720px; }
    .ppt-body .template-sidebar,
    .ppt-body .property-sidebar { overflow: visible; }
    .ppt-body .data-section,
    .ppt-body .output-section { overflow: visible; }
    .workflow-footer > div { display: none; }
    .ppt-body .ppt-status { top: auto; bottom: 1rem; }
}

/* Canvas-first editor. Keep page guidance, reserve the workspace for the slide. */
body.ppt-body {height:100dvh;background:#f6f8fb}
.ppt-body .airtool-header-inner {max-width:none;min-height:44px;padding:6px 16px;gap:12px;flex-wrap:nowrap}
.ppt-body .airtool-brand {gap:8px;flex:none}
.ppt-body .airtool-brand img {width:28px;height:28px;border-radius:6px}
.ppt-body .airtool-brand strong {font-size:14px}
.ppt-body .airtool-brand small {display:none}
.ppt-body .airtool-nav {min-width:0;overflow-x:auto;flex-wrap:nowrap}
.ppt-body .airtool-nav a {font-size:12px;padding:4px 9px;white-space:nowrap}
.ppt-body .ppt-main {padding:8px 0 0}
.ppt-body .ppt-container {max-width:none;padding:0 12px}
.ppt-body .ppt-hero {padding:9px 16px;border-radius:10px;box-shadow:none}
.ppt-body .ppt-hero .eyebrow {display:none}
.ppt-body .ppt-hero h2 {font-size:16px}
.ppt-body .ppt-hero p {font-size:12px;margin:0}
.ppt-body .hero-badges span {font-size:11px;padding:4px 8px}
.ppt-body .workflow-steps {margin:6px 0;padding:3px;border-radius:8px;box-shadow:none}
.ppt-body .workflow-tab {padding:5px 12px;gap:8px}
.ppt-body .workflow-steps b {width:24px;height:24px;font-size:12px;box-shadow:none}
.ppt-body .workflow-steps strong {font-size:12px}
.ppt-body .workflow-steps small {font-size:10px;margin-top:2px}
.ppt-body .ppt-workspace {grid-template-columns:210px minmax(0,1fr) 250px;border-radius:8px;box-shadow:none}
.ppt-body .template-sidebar,.ppt-body .property-sidebar {padding:12px;min-width:0;grid-column:auto}
.ppt-body .property-sidebar {border-top:0;border-left:1px solid var(--ppt-line)}
.ppt-body .panel-heading {margin-bottom:12px}
.ppt-body .panel-heading h3 {font-size:14px}
.ppt-body .section-kicker {font-size:10px}
.ppt-body .icon-button {width:28px;height:28px;border-radius:6px;font-size:20px}
.ppt-body .compact-upload {padding:10px;border-radius:7px}
.ppt-body .compact-upload span {font-size:12px}
.ppt-body .compact-upload small {font-size:10px}
.ppt-body .template-list {gap:8px;margin-top:12px;grid-template-columns:1fr}
.ppt-body .template-card {grid-template-columns:60px minmax(0,1fr);gap:7px;padding:7px;border-radius:7px}
.ppt-body .template-card img {width:60px;height:42px}
.ppt-body .template-card strong {font-size:11px}
.ppt-body .template-card small {font-size:10px}
.ppt-body .sidebar-note {font-size:11px;background:transparent;padding:8px 0;line-height:1.6}
.ppt-body .sidebar-note summary {cursor:pointer;color:#546987}
.ppt-body .sidebar-note p {margin-top:7px}
.ppt-body .editor-toolbar {min-height:40px;padding:5px 8px;flex-wrap:wrap;flex-direction:row;align-items:center}
.ppt-body .tool-button {padding:5px 8px;font-size:11px;border-radius:5px;line-height:1.4}
.ppt-body .canvas-controls {display:flex;align-items:center;justify-content:space-between;gap:6px;flex:none;padding:5px 8px;background:#f9fbfd;border-bottom:1px solid var(--ppt-line)}
.ppt-body .canvas-controls .toolbar-group {align-items:center;flex-wrap:nowrap;gap:4px}
.ppt-body .canvas-controls .tool-button.is-active {background:#eaf2ff;color:#2563eb;border-color:#b9cffa}
.ppt-body #canvasZoomValue {font-size:10px;color:#6a7e99;min-width:34px;text-align:center}
.ppt-body .canvas-shell {display:flex;align-items:flex-start;justify-content:flex-start;min-width:0;padding:12px;overflow:auto;overscroll-behavior:contain}
.ppt-body .template-stage {flex:none;max-width:none;max-height:none;margin:auto;touch-action:none}
.ppt-body .canvas-empty {margin:auto}
.ppt-body .canvas-help {font-size:10px;padding:5px 8px;margin:0}
.ppt-body .field-box {min-width:0;min-height:0;border:1px dashed #2563eb55;background:transparent;touch-action:none}
.ppt-body .field-box::before {opacity:0}
.ppt-body .field-box:hover,.ppt-body .field-box:focus-visible {border-color:#2563eb;background:#2563eb0d;z-index:11}
.ppt-body .field-box:hover::before,.ppt-body .field-box:focus-visible::before,.ppt-body .field-box.is-selected::before {opacity:1}
.ppt-body .field-box.is-selected {border-color:#f97316;background:#f9731614}
.ppt-body .template-stage.is-preview .field-layer {display:none}
.ppt-body .template-stage>[hidden],.ppt-body .property-form [hidden] {display:none!important}
.ppt-body .property-form {display:grid;grid-template-columns:1fr;gap:10px}
.ppt-body .property-form[inert] {opacity:.5}
.ppt-body .property-form label {font-size:11px}
.ppt-body .property-form input,.ppt-body .property-form select {padding:6px 7px;font-size:12px;border-radius:5px}
.ppt-body .property-form input[type=color] {height:30px;padding:3px}
.ppt-body .property-form summary {font-size:11px}
.ppt-body .field-actions {display:flex;gap:6px;border-top:1px solid var(--ppt-line);padding-top:10px}
.ppt-body .property-empty {padding:10px;font-size:12px}
.ppt-body .workflow-footer {min-height:44px;padding:5px 2px 8px}
.ppt-body .workflow-footer .btn {min-width:0;padding:7px 14px;font-size:12px;border-radius:6px}
.ppt-body .workflow-footer>div strong {font-size:11px}
.ppt-body .workflow-footer>div span {display:none}
.ppt-body .section-title-row {flex-wrap:wrap;gap:10px}
.ppt-body .section-title-row h2 {font-size:16px}
.ppt-body .section-title-row p {font-size:12px}
.ppt-body .section-actions .btn {font-size:12px;padding:7px 10px}
.ppt-body .ppt-status {font-size:12px;max-width:min(420px,calc(100vw - 24px));padding:9px 12px}
.ppt-body .airtool-site-version {font-size:9px;padding:0 5px;bottom:0;right:10px;pointer-events:none}
@media(min-width:821px) and (max-width:1100px) {
  .ppt-body .ppt-workspace {grid-template-columns:170px minmax(0,1fr) 210px}
  .ppt-body .template-sidebar,.ppt-body .property-sidebar {padding:9px}
  .ppt-body .template-card {grid-template-columns:1fr}
  .ppt-body .template-card img {width:100%;height:65px;object-fit:contain}
}
@media(max-width:820px) {
  body.ppt-body {height:auto;min-height:100dvh}
  .ppt-body .airtool-header-inner {padding:5px 10px;gap:8px}
  .ppt-body .airtool-brand strong {display:none}
  .ppt-body .airtool-nav {gap:0}
  .ppt-body .airtool-nav a {font-size:11px;padding:4px 6px}
  .ppt-body .ppt-container {padding:0 8px}
  .ppt-body .ppt-hero {padding:9px 12px}
  .ppt-body .ppt-hero h2 {font-size:14px}
  .ppt-body .ppt-hero p {font-size:11px}
  .ppt-body .hero-badges {display:none}
  .ppt-body .workflow-steps {position:static}
  .ppt-body .workflow-tab {padding:6px 4px;gap:5px}
  .ppt-body .workflow-tab span {display:block}
  .ppt-body .workflow-tab strong {font-size:11px}
  .ppt-body .workflow-tab small {display:none}
  .ppt-body .workflow-panel,.ppt-body .ppt-workspace {min-height:0;overflow:visible}
  .ppt-body .ppt-workspace {display:flex;flex-direction:column}
  .ppt-body .template-list {display:flex;overflow-x:auto;margin-top:8px}
  .ppt-body .template-card {min-width:180px;max-width:220px}
  .ppt-body .template-sidebar .panel-heading {margin-bottom:7px}
  .ppt-body .canvas-shell {flex:none;height:340px}
  .ppt-body .property-sidebar {border-left:0;border-top:1px solid var(--ppt-line)}
  .ppt-body .data-section {padding:12px;overflow:hidden}
  .ppt-body .data-import-grid {grid-template-columns:minmax(0,1fr)}
  .ppt-body .workflow-footer {flex-wrap:wrap}
}
