.tm-shell,.tm-preview-dialog{font-family:inherit;color:#243e36;box-sizing:border-box}.tm-shell *,.tm-preview-dialog *{box-sizing:border-box}.tm-shell button,.tm-preview-dialog button,.tm-use{font:inherit;cursor:pointer}.tm-shell button:disabled,.tm-preview-dialog button:disabled{opacity:.45;cursor:default}.tm-shell button:focus-visible,.tm-shell input:focus-visible,.tm-shell select:focus-visible,.tm-preview-dialog button:focus-visible,.tm-use:focus-visible{outline:3px solid #83cdb0;outline-offset:3px}.tm-filters{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 30px}.tm-filters input,.tm-filters select{min-height:44px;padding:10px 14px;border:1px solid #dce6df;border-radius:9px;background:white;color:#3d5a4c;font:inherit;font-size:14px}.tm-filters input{flex:1;min-width:180px}.tm-text-button{border:0;background:none;color:#5e7969;font-size:13px}.tm-layout{display:grid;grid-template-columns:160px minmax(0,1fr);gap:32px}.tm-categories{display:flex;flex-direction:column;gap:7px;align-items:stretch}.tm-categories button{padding:11px 14px;border:0;border-radius:8px;text-align:left;background:transparent;color:#67776c;font-size:14px}.tm-categories button:hover{background:#f0f6f2}.tm-categories button.is-selected{background:#e5f5ed;color:#167a54;font-weight:700}.tm-count{margin:0 0 17px;color:#819085;font-size:13px}.tm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.tm-card{overflow:hidden;border:1px solid #e0e7e1;border-radius:13px;background:#fff;transition:box-shadow .2s,transform .2s}.tm-card:hover{box-shadow:0 12px 26px #254e3312;transform:translateY(-3px)}.tm-card-visual{display:block;width:100%;aspect-ratio:4/3;padding:0;overflow:hidden;border:0;background:#eef2ec;color:#697d6b}.tm-card-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center}.tm-card-info{padding:19px}.tm-tags{font-size:11px;color:#648c74}.tm-card h3{font-size:18px;margin:8px 0;color:#2e493c}.tm-card p{font-size:13px;color:#738177;line-height:1.8;margin:8px 0 16px}.tm-preview-button{padding:0;border:0;background:none;color:#237b59;font-weight:600;font-size:13px}.tm-empty{grid-column:1/-1;padding:64px 20px;text-align:center;background:#f5f8f5;border-radius:12px;color:#748277}.tm-pager{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:30px}.tm-pager button{border:1px solid #dae4dc;background:white;border-radius:6px;padding:8px 14px;color:#436551}.tm-preview-dialog{position:fixed;inset:24px;margin:0;width:calc(100% - 48px);max-width:none;height:calc(100dvh - 48px);max-height:none;padding:0;border:1px solid #d8e2da;border-radius:16px;overflow:hidden;background:#f2f5f1}.tm-preview-dialog::backdrop{background:#14342580;backdrop-filter:blur(5px)}.tm-preview-heading{display:flex;align-items:center;gap:18px;padding:14px 22px;background:#fff;border-bottom:1px solid #e3e9e2}.tm-preview-heading h2{font-size:18px;margin:0 auto 0 0}.tm-devices{display:flex;gap:4px}.tm-devices button{border:0;background:none;border-radius:6px;padding:8px 12px;color:#77877b}.tm-devices button[aria-pressed=true]{background:#e8f4ed;color:#1e7752}.tm-use{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:8px;padding:11px 17px;background:#20966a;color:#fff;text-decoration:none;font-size:14px;font-weight:600}.tm-close{border:0;background:transparent;color:#6e8074;font-size:28px!important;width:32px;height:36px;flex:none}.tm-preview-note{font-size:12px;color:#6e8273;padding:10px 22px;margin:0;height:40px;overflow:auto}.tm-preview-stage{height:calc(100% - 107px);display:flex;justify-content:center;overflow:auto;padding:0 12px 12px}.tm-preview-frame{width:100%;height:100%;border:0;background:white;border-radius:7px}.tm-preview-stage.is-mobile .tm-preview-frame{max-width:390px}.tm-preview-stage>.tm-use{align-self:center}.tm-manager{max-width:1280px;margin:0 auto;padding:36px 28px;color:#2b4839;font-family:system-ui,sans-serif}.tm-manager header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.tm-manager h1{font-size:30px;margin:8px 0}.tm-manager small{color:#729381}.tm-manager table{width:100%;border-collapse:collapse;background:white}.tm-manager td,.tm-manager th{text-align:left;padding:15px 12px;border-bottom:1px solid #e2e8e3;font-size:14px}.tm-manager button{cursor:pointer;font:inherit}.tm-manager-dialog{border:1px solid #d4e0d7;border-radius:14px;max-width:780px;width:92vw;max-height:90dvh;padding:26px;color:#345640}.tm-manager-dialog::backdrop{background:#14342580}.tm-manager-dialog form{display:grid;gap:18px}.tm-manager-dialog label{display:grid;gap:8px;font-size:14px}.tm-manager-dialog input:not([type=checkbox]),.tm-manager-dialog textarea,.tm-manager-dialog select{width:100%;padding:10px;border:1px solid #d1ded4;border-radius:7px;font:inherit}.tm-manager-dialog fieldset{border:1px solid #dbe5de;border-radius:9px}.tm-manager-dialog fieldset label{display:inline-flex;margin:6px 15px 6px 0;gap:6px}.tm-manager-actions{display:flex;gap:12px;align-items:center}.tm-manager-message{color:#966040;min-height:24px;line-height:1.7}.tm-editor-market{flex:1;min-height:0;padding:28px;overflow:auto;height:100%;background:#fafcf9}.tm-editor-market[hidden]{display:none}.tm-editor-market>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.tm-editor-market h2{margin:0 0 8px;font-size:26px}.tm-editor-market p{color:#758678;font-size:13px}.tm-editor-market .tm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tm-editor-market .tm-layout{grid-template-columns:135px minmax(0,1fr);gap:20px}@media(max-width:1050px){.tm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tm-editor-market .tm-layout{display:block}.tm-editor-market .tm-categories{flex-direction:row;overflow:auto;margin-bottom:18px}.tm-editor-market .tm-categories button{white-space:nowrap}}@media(max-width:700px){.tm-layout{display:block}.tm-categories{flex-direction:row;overflow:auto;margin-bottom:20px}.tm-categories button{white-space:nowrap}.tm-grid,.tm-editor-market .tm-grid{grid-template-columns:1fr}.tm-filters{gap:8px;margin-bottom:18px}.tm-filters input{flex-basis:100%}.tm-filters select{flex:1;min-width:100px;font-size:12px}.tm-preview-dialog{inset:0;width:100%;height:100dvh;border-radius:0}.tm-preview-heading{flex-wrap:wrap;gap:8px;padding:12px}.tm-preview-heading h2{font-size:16px;flex:1}.tm-devices{display:none}.tm-use{font-size:12px;padding:9px 12px}.tm-manager{padding:20px 14px}.tm-manager header{flex-wrap:wrap}.tm-manager td,.tm-manager th{padding:10px 6px;font-size:12px}.tm-editor-market{padding:18px}.tm-editor-market>header{gap:12px}.tm-preview-stage{height:calc(100% - 103px)}}
/* Public marketplace follows the marketing site's type and spacing. */
.market-page .tm-layout{grid-template-columns:175px minmax(0,1fr);gap:30px}.market-page .tm-filters{margin-bottom:28px;padding:17px;background:#fff;border:1px solid #e3e9df;border-radius:12px;gap:10px}.market-page .tm-filters input{border:0;background:#f4f7f2;min-height:44px}.market-page .tm-filters select{border-color:#e3e8df;font-size:12px;min-height:44px}.market-page .tm-text-button{padding:0 6px}.market-page .tm-categories{gap:5px}.market-page .tm-categories button{font-size:13px;padding:12px 15px;border:1px solid transparent;transition:background .15s}.market-page .tm-categories button.is-selected{background:#fff;color:#217c5a;border-color:#d7e4d7;box-shadow:0 3px 9px #284a3210}.market-page .tm-categories button.is-selected:before{content:'•';margin-right:9px;color:#42a37b}.market-page .tm-count{font-size:11px;letter-spacing:.04em;color:#879386}.market-page .tm-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.market-page .tm-card{border-radius:14px;border-color:#dfe5da;box-shadow:0 5px 18px #314f2d07}.market-page .tm-card-visual{aspect-ratio:16/11;background:#ebece2}.market-page .tm-card-visual img{object-fit:cover}.market-page .tm-card-info{padding:24px}.market-page .tm-card h3{font-size:23px;line-height:1.4;margin:10px 0;color:#263e35}.market-page .tm-card p{font-size:13px;line-height:1.9;margin-bottom:18px}.tm-featured{display:table;font-size:10px;letter-spacing:.05em;color:#92763f;background:#faf2dd;padding:3px 9px;border-radius:4px;margin-bottom:14px}.tm-formats{color:#899184;font-size:11px;margin:10px 0 20px}.market-page .tm-preview-button{display:inline-flex;border:1px solid #cbdcd0;border-radius:7px;padding:9px 15px;color:#237454;font-size:12px}.market-page .tm-preview-button:hover{background:#edf6ed}.market-page .tm-grid.is-single{grid-template-columns:1fr}.market-page .tm-grid.is-single .tm-card{display:grid;grid-template-columns:1.2fr 1fr}.market-page .tm-grid.is-single .tm-card-visual{height:100%;min-height:310px;aspect-ratio:auto}.market-page .tm-grid.is-single .tm-card-info{align-self:center;padding:32px}.market-page .tm-empty{background:#fff;border:1px dashed #d9e2d4;font-size:14px;padding:70px 25px}.market-page .tm-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px #254e3310}@media(max-width:800px){.market-page .tm-layout{display:block}.market-page .tm-categories{flex-direction:row;overflow:auto;margin-bottom:20px}.market-page .tm-categories button{flex:none;white-space:nowrap;padding:9px 13px}.market-page .tm-grid.is-single .tm-card{display:block}.market-page .tm-grid.is-single .tm-card-visual{height:auto;min-height:0;aspect-ratio:16/11}.market-page .tm-grid.is-single .tm-card-info{padding:23px}.market-page .tm-filters{padding:12px}.market-page .tm-filters input{flex-basis:100%}.market-page .tm-filters select{flex:1;min-width:100px}.market-page .tm-grid{grid-template-columns:1fr}.market-page .tm-card h3{font-size:22px}}@media(prefers-reduced-motion:reduce){.market-page .tm-card,.market-page .tm-categories button{transition:none}}
/* Two purpose-based categories shared by the public gallery and course editor. */
.tm-browse-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-bottom:22px;margin-bottom:24px;border-bottom:1px solid #dfe6da}.tm-category-tabs{display:flex;gap:6px;padding:5px;border:1px solid #e2e8dc;border-radius:12px;background:#fff}.tm-category-tabs button{display:flex;align-items:center;justify-content:center;white-space:nowrap;border:0;border-radius:8px;padding:12px 23px;color:#758377;background:transparent;font-size:14px;font-weight:600;transition:background .15s,color .15s}.tm-category-tabs button:hover{background:#f2f6ed}.tm-category-tabs button.is-selected{color:#fff;background:#2b8265;box-shadow:0 3px 8px #215e3920}.tm-search{width:220px;max-width:100%;padding:11px 15px;border:1px solid #dce4d7;border-radius:9px;background:#fff;color:#345445;font:inherit;font-size:13px}.market-page .tm-count{margin-bottom:16px}.market-page .tm-library-heading{margin-bottom:24px}.market-page .tm-card-info p{margin-bottom:24px}.tm-editor-market .tm-browse-bar{gap:12px}.tm-editor-market .tm-category-tabs button{padding:10px 16px}@media(max-width:650px){.tm-browse-bar{align-items:stretch;flex-direction:column;gap:16px;padding-bottom:18px;margin-bottom:20px}.tm-category-tabs button{flex:1;padding:11px 15px}.tm-search{width:100%}.market-page .tm-grid.is-single .tm-card-info{padding:22px}.market-page .tm-library-heading{margin-bottom:22px}}@media(prefers-reduced-motion:reduce){.tm-category-tabs button{transition:none}}

/* Public template library: keep every item compact so the catalog can grow. */
.market-page .tm-grid,.market-page .tm-grid.is-single{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.market-page .tm-grid.is-single .tm-card{display:flex;grid-template-columns:none}
.market-page .tm-grid.is-single .tm-card-visual{height:auto;min-height:0;aspect-ratio:16/11}
.market-page .tm-card{display:flex;min-width:0;flex-direction:column;border-radius:12px}
.market-page .tm-card-info,.market-page .tm-grid.is-single .tm-card-info{display:flex;flex:1;flex-direction:column;align-items:flex-start;padding:16px}
.market-page .tm-card h3{margin:7px 0 6px;font-size:18px;line-height:1.45}
.market-page .tm-card-info p{display:-webkit-box;min-height:3.4em;margin:4px 0 16px;overflow:hidden;color:#748278;font-size:12px;line-height:1.7;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.market-page .tm-featured{margin-bottom:8px}
.market-page .tm-preview-button{margin-top:auto;padding:8px 13px}
@media(max-width:1100px){.market-page .tm-grid,.market-page .tm-grid.is-single{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:850px){.market-page .tm-grid,.market-page .tm-grid.is-single{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.market-page .tm-grid,.market-page .tm-grid.is-single{grid-template-columns:1fr}}

/* Template covers use one predictable landscape ratio in every catalog. */
.tm-shell .tm-card-visual,.market-page .tm-card-visual,.market-page .tm-grid.is-single .tm-card-visual,.tm-editor-market .tm-card-visual,.tm-editor-market .tm-grid.is-single .tm-card-visual{height:auto;min-height:0;aspect-ratio:16/9}
.tm-card-visual img{object-position:center}
.tm-card-visual-fallback{display:grid;place-items:center;background:linear-gradient(145deg,#edf2ef,#dce7e1);color:#71867a;font-size:12px;font-weight:700}

/* Template cards expose preview and selection as separate actions. */
.tm-card-visual{position:relative}
.tm-card-visual:after{content:'查看預覽';position:absolute;right:12px;bottom:12px;padding:6px 10px;border-radius:7px;background:#173e32d9;color:#fff;font-size:11px;font-weight:700;line-height:1;opacity:0;transform:translateY(4px);transition:opacity .15s,transform .15s}
.tm-card-visual:hover:after,.tm-card-visual:focus-visible:after{opacity:1;transform:none}
.tm-card-actions{display:flex;align-items:center;gap:8px;margin-top:auto}
.tm-card-actions button{display:inline-flex;min-height:38px;align-items:center;justify-content:center;border-radius:8px;padding:0 13px;font:inherit;font-size:12px;font-weight:700;line-height:1;white-space:nowrap}
.tm-select-button{border:1px solid #247b5b;background:#247b5b;color:#fff}
.tm-select-button:hover{border-color:#1b684c;background:#1b684c;color:#fff}
.tm-preview-button:hover{color:#1c684d}
@media(prefers-reduced-motion:reduce){.tm-card-visual:after{transition:none}}
