:root{--ink:#17211b;--muted:#687169;--paper:#f5f1e8;--line:rgba(23,33,27,.13);--green:#245843;--orange:#db6f3d;--cream:#fffdf8;--shadow:0 20px 55px rgba(35,44,37,.10)}
.image-panel{width:min(760px,100%)}.image-kicker{color:#5e5385}.modal .image-upload{margin:0;min-height:150px;border:1.5px dashed rgba(94,83,133,.38);border-radius:18px;background:rgba(94,83,133,.045);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;cursor:pointer;padding:24px;transition:.2s}.modal .image-upload:hover,.modal .image-upload.dragover{border-color:#5e5385;background:rgba(94,83,133,.09)}.image-upload input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.upload-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#5e5385;color:#fff;font-size:23px;margin-bottom:2px}.image-upload strong{font-size:13px}.image-upload small,.workflow-note small{color:var(--muted);font-size:10px;line-height:1.5}.image-preview{margin:0;position:relative;border-radius:18px;overflow:hidden;background:#eee9df;min-height:180px;max-height:330px}.image-preview img{display:block;width:100%;height:100%;max-height:330px;object-fit:contain}.image-preview button{position:absolute;right:12px;bottom:12px;border:0;border-radius:999px;padding:8px 12px;background:rgba(23,33,27,.84);color:#fff;font-size:11px;cursor:pointer}.workflow-note{align-self:end;min-height:72px;border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;justify-content:center;gap:3px}.workflow-note span{color:var(--muted);font-size:10px}.workflow-note strong{font-size:12px}.image-submit{background:#5e5385}.image-progress{margin-top:18px;border:1px solid rgba(94,83,133,.2);background:rgba(94,83,133,.05);border-radius:15px;padding:14px;display:flex;align-items:center;gap:12px}.image-progress[hidden]{display:none}.image-progress strong,.image-progress small{display:block}.image-progress strong{font-size:12px}.image-progress small{margin-top:3px;color:var(--muted);font-size:10px}.image-spinner{width:22px;height:22px;border:2px solid rgba(94,83,133,.2);border-top-color:#5e5385;border-radius:50%;animation:image-spin .8s linear infinite;flex:none}@keyframes image-spin{to{transform:rotate(360deg)}}.image-result img{display:block;width:100%;max-height:520px;object-fit:contain;background:#eee9df}.image-result img[hidden]{display:none}.image-result p{margin:0;padding:17px;color:#a34d31;font-size:12px;line-height:1.6}.result-actions{display:flex;align-items:center;gap:12px}.result-actions a{color:var(--green);text-decoration:none}.result-actions a,.result-actions button{font-size:11px;font-weight:750}@media(max-width:720px){.modal .image-upload{min-height:135px;padding:18px}.image-preview{max-height:260px}.image-preview img{max-height:260px}.image-result img{max-height:420px}}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;min-height:100vh;overflow-x:hidden}button,input,textarea,select{font:inherit}.ambient{position:fixed;border-radius:50%;filter:blur(2px);pointer-events:none;z-index:-1}.ambient-one{width:420px;height:420px;background:rgba(225,148,99,.17);top:-190px;right:-130px}.ambient-two{width:360px;height:360px;background:rgba(80,139,111,.13);left:-180px;top:45vh}.topbar{height:82px;max-width:1240px;margin:auto;padding:0 36px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;font-size:18px;font-weight:700;letter-spacing:.04em}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--ink);color:#fff;font-size:13px;letter-spacing:.02em}.system-pill{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:rgba(255,253,248,.55);font-size:12px}
/* 椤舵爮鍙充晶锛氱姸鎬佽兌鍥?+ 閫€鍑恒€?topbar 鏄?space-between锛岀洿鎺ュ線閲屽姞绗笁涓?
   瀛愬厓绱犱細鎶婄姸鎬佽兌鍥婃尋鍒颁腑闂达紝鎵€浠ュ寘涓€灞傘€?*/
.topbar-right{display:flex;align-items:center;gap:10px}
/* 閫€鍑烘寜閽仛鎴?*娆＄骇鏍峰紡**锛堟弿杈广€佺伆瀛楋級锛屼笉鏄富鑹叉寜閽細瀹冩槸涓€涓?
   涓€骞寸偣涓€娆＄殑鍔ㄤ綔锛岃瑙夐噸閲忓帇杩?寮€濮嬬敤鏌愪釜搴旂敤"灏变笉瀵逛簡銆?
   min-height 40px 涓嶆槸 38 鈥斺€?鎵嬫満鐐瑰嚮鐩爣涓嬮檺 44 閲屽惈杈规锛?
   40+2脳1 杈规 = 42锛岄厤涓?gap 宸茬粡澶熸寜锛涘啀澶у氨鍘嬭繃鐘舵€佽兌鍥婁簡銆?*/
.logout-btn{min-height:40px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:rgba(255,253,248,.55);color:var(--muted);font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}
.logout-btn:hover{border-color:var(--green);color:var(--green)}
.trial-key-btn{border-color:rgba(184,93,48,.38);color:#9a4b28}
.trial-key-btn:hover{border-color:var(--orange);color:#8a3f20}
.trial-key-value{width:100%;box-sizing:border-box;resize:none;padding:10px;border:1px solid var(--line);border-radius:8px;background:#faf8f3;color:var(--ink);font:12px/1.45 Consolas,monospace;word-break:break-all}
.logout-btn[hidden]{display:none}.pulse{width:7px;height:7px;border-radius:50%;background:#d2a12f;box-shadow:0 0 0 4px rgba(210,161,47,.12)}.pulse.online{background:#3e8a63;box-shadow:0 0 0 4px rgba(62,138,99,.12)}main{max-width:1168px;margin:auto;padding:0 36px 80px}.hero{padding:92px 0 80px;max-width:850px}.eyebrow,.section-kicker{font-size:11px;letter-spacing:.22em;font-weight:800;color:var(--orange);margin:0 0 18px}.hero h1{font-family:Georgia,"Noto Serif SC",serif;font-size:clamp(48px,7vw,84px);line-height:1.08;letter-spacing:-.045em;margin:0;font-weight:500}.hero h1 em{font-weight:400;color:var(--green)}.hero-copy{max-width:620px;margin:28px 0 0;color:var(--muted);font-size:17px;line-height:1.8}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:28px}.section-heading h2{margin:0;font-size:29px;letter-spacing:-.03em}.section-heading .section-kicker{margin-bottom:9px}.app-count{font-size:12px;color:var(--muted);padding-bottom:4px}.app-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.app-card{min-height:292px;padding:28px;border:1px solid var(--line);border-radius:24px;text-decoration:none;text-align:left;color:var(--ink);background:rgba(255,253,248,.68);display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;position:relative;overflow:hidden;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease}.app-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:rgba(23,33,27,.22)}.app-card:focus-visible{outline:3px solid rgba(36,88,67,.3);outline-offset:3px}.card-top{display:flex;align-items:start;justify-content:space-between}.app-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:17px;background:var(--ink);color:#fff;font-weight:750;font-size:18px}.status{padding:6px 9px;border-radius:999px;background:#eee8dc;color:#80786b;font-size:10px;font-weight:750;letter-spacing:.06em}.status.ready{background:#dfeee5;color:#326c4f}.status.offline{background:#f2dfd7;color:#a45031}.app-card h3{font-size:26px;margin:30px 0 10px;letter-spacing:-.03em}.app-card p{margin:0;color:var(--muted);line-height:1.7;max-width:420px;font-size:14px}.card-action{margin-top:24px;font-size:13px;font-weight:750;display:flex;align-items:center;gap:8px}.card-action b{font-size:17px}.card-video{background:var(--green);color:#fff;border-color:transparent}.card-video p{color:rgba(255,255,255,.72)}.card-video .app-icon{background:rgba(255,255,255,.13)}.card-video .status{background:rgba(255,255,255,.13);color:#fff}.card-codex .app-icon{font-family:Consolas,monospace;background:#202723}.card-writing .app-icon{background:var(--orange);font-family:Georgia,serif}.card-image .app-icon{background:#5e5385}.card-more{min-height:150px;grid-column:1/-1;flex-direction:row;align-items:center;justify-content:flex-start;gap:22px;border-style:dashed;background:transparent}.card-more .plus{width:54px;height:54px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:26px;color:var(--muted)}.card-more h3{font-size:19px;margin:0 0 5px}.history-section{margin-top:84px}.section-heading.compact{margin-bottom:18px}.history-list{border-top:1px solid var(--line)}.history-item{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:15px;padding:17px 4px;border-bottom:1px solid var(--line)}.history-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#e9e3d8;font-size:12px;font-weight:800}.history-title{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-meta{font-size:11px;color:var(--muted);margin-top:4px}.history-state{font-size:11px;font-weight:700;color:#397455}.history-state.failed{color:#ad5838}.empty-state{color:var(--muted);padding:28px 4px;margin:0;font-size:14px}footer{max-width:1168px;margin:auto;padding:24px 36px 38px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:#858b85;font-size:10px;letter-spacing:.14em}.modal{border:0;padding:0;background:transparent;max-width:none;max-height:none;width:100%;height:100%}.modal::backdrop{background:rgba(17,24,20,.55);backdrop-filter:blur(8px)}.modal[open]{display:grid;place-items:center;padding:24px}.modal-panel{width:min(680px,100%);max-height:calc(100vh - 48px);overflow:auto;background:var(--cream);border-radius:28px;padding:32px;box-shadow:0 28px 80px rgba(9,16,12,.28)}.modal-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:25px}.modal-kicker{font-size:10px;font-weight:800;color:var(--orange);letter-spacing:.18em}.modal-head h2{font-size:28px;margin:5px 0 0;letter-spacing:-.035em}.close{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:transparent;font-size:24px;line-height:1;color:var(--muted);cursor:pointer}.modal label{font-size:12px;font-weight:750;display:flex;justify-content:space-between;margin:16px 0 8px}/* input[type=text] 鍘熸潵婕忓湪杩欐潯瑙勫垯澶栭潰锛屼簬鏄富棰樸€佸惉浼椼€佸彛鍚昏ˉ鍏呰鏄庝笁涓
   閮芥槸娴忚鍣ㄩ粯璁ょ殑 size=20 瀹藉害锛堢害鍗婃爮锛夈€傚崰浣嶇閲岀殑渚嬪瓙琚洿鎺ユ埅鎺夆€斺€?
   銆屼緥濡傦細浼佷笟 AI 搴旂敤瀹炴垬鍩广€嶅皯浜嗕釜"璁?瀛楋紝鐢ㄦ埛鐪嬩笉鍒板畬鏁寸ず渚嬨€?*/
.modal textarea,.modal select,.modal input[type=text]{width:100%;border:1px solid var(--line);border-radius:14px;background:#f8f5ee;color:var(--ink);padding:14px;outline:none}
.modal input[type=text]:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(36,88,67,.08)}.modal textarea{resize:vertical;line-height:1.6}.modal textarea:focus,.modal select:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(36,88,67,.08)}.field-note{font-size:11px;color:var(--muted);margin:8px 2px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.modal input[type=range]{width:100%;accent-color:var(--orange)}.submit-btn{border:0;border-radius:14px;padding:15px 17px;width:100%;margin-top:24px;display:flex;justify-content:space-between;align-items:center;color:#fff;background:var(--green);font-weight:750;cursor:pointer}.writing-submit{background:var(--orange)}.submit-btn:disabled{opacity:.55;cursor:wait}.result{margin-top:22px;border:1px solid var(--line);border-radius:16px;overflow:hidden}.result-head{display:flex;justify-content:space-between;align-items:center;background:#eee9df;padding:10px 14px;font-size:11px;font-weight:800}.result-head button{border:0;background:transparent;color:var(--green);font-weight:750;cursor:pointer}.result pre{margin:0;padding:17px;white-space:pre-wrap;word-break:break-word;max-height:360px;overflow:auto;overscroll-behavior:contain;font-family:inherit;font-size:13px;line-height:1.75;background:#fbf9f4}.result.error pre{color:#a34d31}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:#17211b;color:#fff;padding:12px 18px;border-radius:12px;font-size:12px;opacity:0;pointer-events:none;transition:.2s;z-index:20}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:720px){.topbar{height:70px;padding:0 20px}.system-pill span:last-child{display:none}main{padding:0 18px 60px}.hero{padding:65px 3px 58px}.hero h1{font-size:44px}.hero-copy{font-size:15px;line-height:1.7}.app-grid{grid-template-columns:1fr;gap:14px}.app-card{min-height:250px;padding:23px;border-radius:20px}.card-more{grid-column:auto;min-height:145px}.app-card h3{font-size:23px}.history-section{margin-top:64px}.section-heading h2{font-size:25px}footer{padding:21px 20px 30px;display:block;line-height:2}footer span{display:block}.modal[open]{padding:0;align-items:end}.modal-panel{border-radius:24px 24px 0 0;max-height:92vh;padding:25px 20px 30px}.form-row{grid-template-columns:1fr}.modal-head h2{font-size:25px}}
.modal-panel.image-panel{width:min(760px,100%)}.modal-kicker.image-kicker{color:#5e5385}.modal .image-upload[hidden]{display:none}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.image-spinner{animation:none}}

.login-dialog{width:min(92vw,420px);padding:0;border:0;border-radius:16px;box-shadow:0 24px 80px rgb(0 0 0 / 30%)}.login-dialog::backdrop{background:rgb(0 0 0 / 55%);backdrop-filter:blur(3px)}.login-panel{display:grid;gap:14px;padding:24px}.login-panel h2,.login-panel p{margin:0}.login-panel input{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid #d4d4d8;border-radius:10px;font:inherit}#login-error{color:#dc2626}.login-actions{display:flex;justify-content:flex-end;gap:10px}.login-actions button{padding:8px 20px;border-radius:10px;border:1px solid #d4d4d8;background:#fff;cursor:pointer}#login-submit{background:var(--ink);color:#fff;border-color:var(--ink)}
.card-claude .app-icon{background:#6b3fa0}.claude-submit{background:#6b3fa0}.card-claude .status{color:#6b3fa0}
.ppt-submit{background:#1f5f4f}.modal-panel.ppt-panel{width:min(720px,100%)}.modal-kicker.ppt-kicker{color:#1f5f4f}
/* 浣欓鑳跺泭銆?*margin-left:auto 鏄繀闇€鐨?*锛?modal-head 鏄?space-between锛?
   鍔犺繘鏉ョ殑绗笁涓瓙鍏冪礌浼氳椤跺埌鏍囬鍜屽叧闂寜閽?*姝ｄ腑闂?*锛岀湅鐫€鍍忎釜璧板け鐨勬爣绛俱€?
   auto 璁╁畠璐翠綇鍙宠竟鐨勫叧闂寜閽€?
   align-self:center 鑰屼笉鏄户鎵?align-items:start 鈥斺€?鏍囬閭ｄ竴鍒楁湁涓よ
   锛坘icker + h2锛夛紝椤跺榻愪細璁╄兌鍥婇鍦?kicker 閭ｄ竴琛屻€?*/
.ppt-balance{margin-left:auto;align-self:center;margin-right:12px;padding:6px 13px;border-radius:999px;background:rgba(31,95,79,.12);color:#1f5f4f;font-size:12px;font-weight:700;white-space:nowrap}
/* 蹇敤瀹岋細鎹㈡垚璀︾ず鑹茶€屼笉鏄彧鍔犵矖銆傚姞绮楀湪 12px 涓婂嚑涔庣湅涓嶅嚭宸埆锛?
   鑰岃繖鏉′俊鎭殑浣滅敤鏄鐢ㄦ埛鍦?*濉〃涔嬪墠**灏卞幓鍏呭€笺€?*/
.ppt-balance.is-low{background:rgba(176,74,32,.14);color:#a24518}
.ppt-balance[hidden]{display:none}
/* 绐勫睆鏀剁獎銆?*杩欐槸鎺㈤拡绠楀嚭鏉ョ殑锛屼笉鏄垜鐪嬬潃璋冪殑**锛?20px 灞忎笂
   鏍囬 150 + 鑳跺泭 107 + 闂磋窛 12 + 鍏抽棴 38 = 307px > 鍙敤 280px锛?
   鏍囬浼氳鎸ゆ垚涓よ锛堣 tools/probe_mobile_layout.py 绗簲鑺傦級銆?
   缂╁瓧鍙峰拰鍐呰竟璺濇妸鑳跺泭浠?107 鍘嬪埌 ~87锛?
   鏍囬 121 + 鑳跺泭 87 + 闂磋窛 8 + 鍏抽棴 38 = 254px 鈮?280px锛屾斁寰椾笅銆?
   **鏂囨涓嶅湪杩欓噷鏀?*锛欽S 閭ｈ竟涓嶈鐭ラ亾瑙嗗彛瀹藉害锛?
   銆岃繕鍓┿€嶄袱涓瓧鐣欑潃 鈥斺€?灏戜袱涓瓧鐪?28px锛屼絾璁╂枃妗堥殢灞忓箷鍙樹細澶氫竴鏉?
   鍙湪鏌愪釜瀹藉害涓嬫墠鎴愮珛鐨勫垽鎹€?*/
@media(max-width:720px){.ppt-balance{font-size:11px;padding:5px 9px;margin-right:8px}}
.card-ppt{background:linear-gradient(150deg,rgba(31,95,79,.13),rgba(31,95,79,.045) 52%,rgba(255,253,248,.72));border-color:rgba(31,95,79,.34);box-shadow:0 6px 22px rgba(31,95,79,.11)}
.card-ppt::after{content:"";position:absolute;right:-58px;top:-58px;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,rgba(31,95,79,.16),transparent 68%);pointer-events:none}
.card-ppt:hover{border-color:rgba(31,95,79,.55);box-shadow:0 14px 34px rgba(31,95,79,.2)}
.card-ppt .app-icon{background:#1f5f4f;box-shadow:0 4px 14px rgba(31,95,79,.32)}
.card-ppt .status{color:#1f5f4f;background:rgba(31,95,79,.14)}
.card-ppt h3{color:#123b31}.card-ppt .card-action{color:#1f5f4f}
.card-ppt .card-top{gap:10px}
.card-ppt .card-badge{margin-left:auto;align-self:center;padding:5px 11px;border-radius:999px;background:#1f5f4f;color:#fff;font-size:10px;font-weight:750;letter-spacing:.12em;white-space:nowrap}
.ppt-upload{margin:0;min-height:104px;border:1.5px dashed rgba(31,95,79,.38);border-radius:18px;background:rgba(31,95,79,.045);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;cursor:pointer;padding:18px;transition:.2s}
.ppt-upload:hover{border-color:rgba(31,95,79,.6);background:rgba(31,95,79,.08)}.ppt-upload input{display:none}.ppt-upload .upload-mark{font-size:22px;color:#1f5f4f}.ppt-upload strong{font-size:13px;font-weight:700}.ppt-upload small{font-size:12px;color:var(--muted)}
/* 涓や釜涓婁紶鍧楄创鍦ㄤ竴璧凤紝label 鐨?margin 琚笂闈㈡竻鎴?0 浜嗭紝杩欓噷琛ュ洖闂磋窛 */
.ppt-upload+.ppt-upload{margin-top:10px}
.ppt-upload strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ppt-ref-list{display:flex;flex-direction:column;gap:6px;margin:8px 0 0}
.ppt-ref-list[hidden]{display:none}
.ppt-ref-row{display:flex;align-items:center;gap:9px;padding:7px 10px;border:1px solid var(--line);border-radius:11px;background:rgba(31,95,79,.028)}
.ppt-ref-row>span{flex:1;min-width:0;font-size:12px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ppt-ref-row>small{flex:none;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.ppt-ref-drop{flex:none;width:22px;height:22px;border:none;border-radius:50%;background:rgba(180,72,60,.1);color:#b4483c;font-size:14px;line-height:1;cursor:pointer;transition:.16s}
.ppt-ref-drop:hover{background:rgba(180,72,60,.22)}
.ppt-density{margin:0 0 12px;padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:rgba(31,95,79,.028)}
.ppt-density-label{font-size:12px;font-weight:750}
.ppt-density .density-opt{margin:0;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:9px 11px;border:1.5px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;transition:.18s}
.ppt-density .density-opt:hover{border-color:rgba(31,95,79,.45);background:rgba(31,95,79,.045)}
.ppt-density .density-opt input{display:none}
.ppt-density .density-opt span{font-size:13px;font-weight:650}
.ppt-density .density-opt small{font-size:11px;color:var(--muted);font-weight:400}
.ppt-density .density-opt.is-on{border-color:#1f5f4f;background:rgba(31,95,79,.09);box-shadow:0 2px 10px rgba(31,95,79,.12)}
.ppt-density{display:grid;grid-template-columns:1fr 1fr;gap:8px}
/* ppt-density-label 宸插簾寮冿細瀵嗗害鍧楃Щ鍒拌〃鍗曞尯鍚庣敤澶栭儴 <label> 鍋氭爣棰橈紝
   鍜?pptTheme/pptTone 涓€鑷淬€備繚鐣欓€夋嫨鍣ㄥ彧涓哄吋瀹规祻瑙堝櫒閲岀殑鏃х紦瀛橀〉闈?*/
.ppt-density-label,.ppt-density-note{grid-column:1/-1}
.ppt-density-note{margin:0;font-size:11px;color:#1f5f4f}
.ppt-density-note[hidden]{display:none}
/* 瀵嗗害涔熸敼涓ゅ垪锛氬彧鏈変袱涓€夐」锛屼竴琛屽氨鎺掑畬锛屾瘮鍗曞垪鐪佹帀涓€鍗婇珮搴︺€?
   鍜岄厤鑹层€佸彛鍚汇€佺増闈㈢粺涓€鎴愪袱鍒楋紝鍥涚粍妗ｄ綅鑺傚涓€鑷淬€?*/
@media (max-width:560px){.ppt-density{grid-template-columns:1fr 1fr}.density-opt{min-height:44px}}
/* 鍒楁暟**涓嶅啓姝?*銆傚師鏉ユ槸 repeat(3,1fr)锛屽姞绗洓濂楅厤鑹叉椂绗洓涓細鎺夊埌
   绗簩琛岀嫭鍗犱竴鏁存牸锛岀湅璧锋潵鍍忓嚭浜嗛敊銆俛uto-fit + minmax 璁╁畠鎸夊鍣ㄥ搴?
   鑷繁鎺掞紙瀹界殑鏃跺€?4 鍒椾竴琛岋紝绐勭殑鏃跺€?2脳2锛夛紝鍔犵浜斿涔熶笉鐢ㄥ啀鏀硅繖閲?*/
.ppt-themes{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0 0 4px}
.theme-opt{margin:0;display:flex;align-items:center;gap:9px;padding:11px 12px;border:1.5px solid var(--line);border-radius:14px;cursor:pointer;font-size:13px;font-weight:650;transition:.18s}
.theme-opt:hover{border-color:rgba(31,95,79,.45);background:rgba(31,95,79,.045)}
.theme-opt input{display:none}
.theme-opt.is-on{border-color:#1f5f4f;background:rgba(31,95,79,.09);box-shadow:0 2px 10px rgba(31,95,79,.12)}
.theme-opt .sw{width:22px;height:22px;border-radius:7px;flex:none;border:1px solid rgba(0,0,0,.14)}
/* 鍐呭鍙ｅ惢銆傚叚妗ｆ斁涓嶈繘涓夊垪锛堜細鍓╀竴涓鏍硷級锛岀敤 auto-fill 璁╁畠鎸夊搴﹁嚜宸辨帓 */
.ppt-tones{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:0 0 8px}
.tone-opt{margin:0;display:flex;flex-direction:column;gap:2px;padding:9px 11px;border:1.5px solid var(--line);border-radius:12px;cursor:pointer;transition:.18s}
.tone-opt:hover{border-color:rgba(31,95,79,.45);background:rgba(31,95,79,.045)}
.tone-opt input{display:none}
.tone-opt.is-on{border-color:#1f5f4f;background:rgba(31,95,79,.09);box-shadow:0 2px 10px rgba(31,95,79,.12)}
.tone-opt span{font-size:13px;font-weight:650}
.tone-opt small{font-size:11px;color:var(--muted);line-height:1.45}
/* 鍙ｅ惢鍜岀増闈㈠湪绐勫睆涓ゅ垪銆傜湡鏈轰笂灏忓瓧浼氭姌鎴愪袱涓夎锛屽悓涓€琛屼袱寮犲崱鐗囬珮搴﹀弬宸?
   锛?鑷姩鍒ゆ柇/浠庝笅闈㈠嚑妗ｉ噷鎸変富棰樹笌鍚紬鎸戜竴妗? 姣?"鍩硅鎺堣/璁茶В寮曞锛屽涓句緥"
   闀垮緱澶氾級銆俛lign-items:stretch 璁╁悓琛岀瓑楂樷€斺€攇rid 榛樿灏辨槸 stretch锛?
   浣嗗崱鐗囪嚜宸辨槸 flex 涓旀病璁?height锛屾墍浠ヨ鏄惧紡璁╁畠鎾戞弧鏍煎瓙銆?*/
@media (max-width:560px){
  .ppt-tones{grid-template-columns:1fr 1fr}
  .tone-opt{height:100%;min-height:52px;box-sizing:border-box}
}
/* 渚嬪瓙鎸夐挳锛氱偣涓€涓嬪～杩涜緭鍏ユ銆傛瘮鍙斁 placeholder 濂藉湪鈥斺€斾緥瀛愪竴鐩寸湅寰楄锛?
   鑰屼笖鐢ㄦ埛涓嶇敤鑷繁鎯虫€庝箞鍐欙紝鐓х潃鏀瑰氨琛?*/
.ppt-tone-egs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 4px}
.ppt-tone-egs button{border:1px dashed rgba(31,95,79,.42);background:rgba(31,95,79,.045);color:#1f5f4f;border-radius:999px;padding:5px 11px;font-size:11.5px;font-family:inherit;cursor:pointer;transition:.16s}
.ppt-tone-egs button:hover{border-style:solid;background:rgba(31,95,79,.11)}
/* 绐勫睆鎶婅兌鍥婃寜閽拺鍒?40px锛氭闈㈢殑 5px 鍐呰竟璺?+ 11.5px 瀛楀彿鍙湁绾?32px 楂橈紝
   鍥涗釜鏍囩鍙堟尐寰楄繎锛屾墜鏈轰笂寰堝鏄撶偣鍒伴殧澹侀偅涓?*/
@media(max-width:640px){.ppt-tone-egs{gap:8px}.ppt-tone-egs button{min-height:40px;padding:9px 13px;font-size:12.5px}}
.ppt-tone-egs button.is-on{border-style:solid;background:rgba(31,95,79,.16);font-weight:650}
/* 鑹插崱鎸夊悇涓婚鐨?bg鈫掑己璋冭壊娓愬彉锛屾瘮绾壊鏇磋兘鎻愮ず鏁翠綋瑙傛劅 */
.sw-dark{background:linear-gradient(135deg,#0a0e1a 52%,#22d3ee)}
.sw-light{background:linear-gradient(135deg,#fff 52%,#1f5f4f)}
.sw-warm{background:linear-gradient(135deg,#f5f1e8 52%,#c4552f)}
/* 涓€х伆鐨勫己璋冭壊鏈韩灏辨槸鐏拌摑锛屾笎鍙樹袱绔緢杩戔€斺€旇繖姝ｆ槸瀹冭缁欑殑瑙傛劅鎻愮ず */
.sw-slate{background:linear-gradient(135deg,#f7f8f8 52%,#37474f)}
/* 鍝佺墝鑹插潡锛?-brand 鐢?JS 鎸夌敤鎴峰凡瀛樼殑涓昏壊璁剧疆銆傚洖钀藉€兼槸鍗犱綅鐏拌€屼笉鏄煇涓?
   鍏蜂綋棰滆壊 鈥斺€?杩樻病璁剧疆鏃舵樉绀轰竴涓湡瀹為鑹蹭細璁╀汉浠ヤ负宸茬粡鐢熸晥浜嗐€?*/
.sw-brand{background:linear-gradient(135deg,#fff 52%,var(--brand,#b9c0c6))}
.ppt-brand{margin:-2px 0 14px;padding:12px;border:1.5px dashed var(--line);border-radius:14px;background:rgba(31,95,79,.03)}
.ppt-brand-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ppt-brand-color{margin:0;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:650}
.ppt-brand-color input[type=color]{width:44px;height:32px;padding:0;border:1.5px solid var(--line);border-radius:9px;background:none;cursor:pointer}
/* **閫夋嫨鍣ㄥ繀椤绘瘮 `.modal input[type=text]` 鏇撮噸銆?* 閭ｆ潯瑙勫垯锛堟湰鏂囦欢闈犲墠锛?
   缁欏脊绐楅噷鎵€鏈夊崟琛屾枃鏈 width:100% + padding:14px锛屾潈閲?(0,2,1)锛?
   鍗曞啓 `.ppt-brand-hex` 鍙湁 (0,1,0)锛屼細琚帇鎺?鈥斺€?琛ㄧ幇鏄?7 涓瓧绗︾殑
   鑹插彿妗嗗崰婊℃暣琛岋紙870px锛夛紝鎶娿€岀敤杩欎釜鑹层€嶆寜閽尋鍒颁笅涓€琛屽幓銆?
   鍔犱笂 .modal 鍓嶇紑鍑戝埌 (0,3,1)銆傛敼杩欐潯鏃跺埆鎶婂墠缂€鍒犱簡銆?*/
.modal input[type=text].ppt-brand-hex{width:104px;flex:none;padding:8px 10px;border:1.5px solid var(--line);border-radius:10px;font:650 13px/1.2 ui-monospace,Consolas,monospace;text-transform:uppercase}
.ppt-brand-tip{display:block;margin-top:9px;font-size:12px;line-height:1.5;color:var(--muted)}
.ppt-brand-tip.is-bad{color:#b3261e;font-weight:650}
.ppt-brand-tip.is-ok{color:#1f5f4f;font-weight:650}
/* logo 涓婁紶琛屻€傚拰鍙傝€冭祫鏂欑殑涓婁紶鍧楀悓涓€濂楄鎰燂紙upload-mark 锛?鍙凤級锛?
   鍥犱负涓よ€呴兘鏄?閫変釜鏂囦欢"锛岃鎰熶笉涓€鑷翠細璁╀汉浠ヤ负瑙勫垯涔熶笉涓€鏍枫€?*/
.ppt-logo{display:flex;align-items:flex-start;gap:10px;margin-bottom:14px}
.ppt-logo-use{display:flex;align-items:center;gap:7px;margin:-6px 0 14px;font-size:12px;color:var(--muted)}
.ppt-logo-use input{accent-color:var(--accent)}
/* **宸﹀唴杈硅窛蹇呴』 鈮?鍦嗙殑 left + 鐩村緞銆?* 鍩虹瑙勫垯 .upload-mark 鏄竴涓?
   38脳38 鐨勫疄蹇冨渾锛堢传搴曠櫧瀛楋級锛屾垜杩欐潯瑕嗙洊鍙敼浜?position/left/top/瀛楀彿锛?
   **娌￠噸缃?width/height/background** 鈥斺€?鍦嗕粠 14px 閾哄埌 52px锛岃€岃繖閲屽師鏉?
   鍙暀浜?42px锛屽渾鐨勮儗鏅洿鎺ョ洊浣忎簡"閫夋嫨 logo 鍥剧墖"閭ｅ嚑涓瓧銆?
   12 + 38 + 12 = 62銆傛敼杩欎釜鏁颁箣鍓嶅厛閲忓渾鐨勭洿寰勩€?*/
.ppt-logo-pick{margin:0;flex:1;min-width:0;position:relative;display:block;padding:12px 12px 12px 62px;border:1.5px dashed var(--line);border-radius:14px;cursor:pointer;transition:.18s}
.ppt-logo-pick:hover{border-color:rgba(31,95,79,.5);background:rgba(31,95,79,.04)}
.ppt-logo-pick input{position:absolute;inset:0;opacity:0;cursor:pointer}
/* 鍦嗗瀭鐩村眳涓€屼笉鏄粰姝?top锛氳繖涓€琛岀殑楂樺害闅忔彁绀烘枃妗堟姌鍑犺鑰屽彉锛?
   缁欐 top 鐨勮瘽鏂囨涓€闀垮渾灏辫窇鍒板亸涓婃柟鍘讳簡銆?*/
.ppt-logo-pick .upload-mark{position:absolute;left:12px;top:50%;transform:translateY(-50%);margin:0;font-size:20px}
.ppt-logo-pick strong{display:block;font-size:13px;font-weight:650}
.ppt-logo-pick small{display:block;margin-top:4px;font-size:12px;line-height:1.5;color:var(--muted)}
.ppt-logo-pick.is-set{border-style:solid;border-color:rgba(31,95,79,.5);background:rgba(31,95,79,.05)}
.ppt-logo-pick.is-bad{border-color:#b3261e;background:rgba(179,38,30,.04)}
/* 涓婁紶澶辫触鐨勫師鍥犵暀鍦ㄦ彁绀鸿閲岋紙toast 浼氭秷澶憋紝绾㈡鏈韩涓嶈鏄庡師鍥狅級銆?
   鍔犵矖鏄繀瑕佺殑锛氳繖涓€琛屽钩鏃舵槸鐏拌壊璇存槑鏂囧瓧锛屼笉鍔犵矖鐢ㄦ埛浼氬綋鎴愯繕鏄偅鍙ヨ鏄庛€?*/
.ppt-logo-pick small.is-bad{color:#b3261e;font-weight:650}
.ppt-logo-del{flex:none;margin-top:2px}
/* 椤垫暟鏁板瓧妗嗭細闀垮緱鍍忓師鏉ラ偅涓彧璇绘暟瀛楋紝浣嗗彲浠ラ敭鍏ャ€?
   瀹藉害鎸変袱浣嶆暟 + 寰皟绠ご鐣欙紝澶?40 涔熷 6銆?*/
#pptPagesOutput{width:52px;margin-left:6px;padding:2px 4px;border:1px solid var(--line);border-radius:6px;background:#fff;color:inherit;font:inherit;font-weight:750;text-align:center}
/* 鎵嬫満涓婅繖涓鍘熸潵鍙湁绾?24px 楂橈紝鎵嬫寚鎸変笉鍑嗭紙瑙︽懜鐩爣鐨勫父鐢ㄤ笅闄愭槸 44px锛夈€?
   绐勫睆鍔犻珮鍔犲锛岄『甯︽妸瀛楀彿鎻愬埌 16px 鈥斺€?iOS Safari 瀵瑰皬浜?16px 鐨勮緭鍏ユ浼?
   鑷姩鏀惧ぇ鏁翠釜椤甸潰锛岄偅涓€涓嬬缉鏀句細鎶婄敤鎴峰垰鎵嶇殑婊氬姩浣嶇疆涔熷紕涓€?*/
@media(max-width:640px){#pptPagesOutput{width:64px;min-height:40px;padding:8px 6px;font-size:16px}}
#pptPagesOutput:focus{outline:2px solid rgba(31,95,79,.35);outline-offset:1px}
/* 鈹€鈹€ 鍒嗙粍瀹瑰櫒 鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€
   鏋佹祬搴曡壊 + 缁勬爣棰樺仛瑙嗚鍒囧壊銆傚師鏉ュ崄鏉ョ粍閰嶇疆骞抽摵銆佽瑙夋潈閲嶇浉鍚岋紝
   鐢ㄦ埛浠ヤ负姣忛」閮藉緱璁ょ湡璁剧疆锛堜笁浠?UI 璇勫鐨勫叡鍚岀粨璁猴級銆?*/
.ppt-group{border:1px solid var(--line);border-radius:16px;padding:16px 15px 4px;margin:0 0 14px;background:rgba(31,95,79,.018)}
.ppt-group-title{margin:0 0 10px;font-size:12px;font-weight:800;color:#1f5f4f;letter-spacing:.02em}
.ppt-group-title small{margin-left:7px;font-weight:600;color:var(--muted);letter-spacing:0}
/* 缁勫唴绗竴涓?label 涓嶈鍐嶉《涓€娈靛杈硅窛锛岀粍鏍囬宸茬粡鍗犱簡閭ｄ釜浣嶇疆 */
.ppt-group>label:first-of-type{margin-top:0}

/* 鈹€鈹€ 鎶樺彔鍖猴紙澶栬锛?鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€
   鐢ㄥ師鐢?<details> 鑰屼笉鏄嚜宸卞啓灞曞紑閫昏緫锛氶敭鐩樺彲杈俱€佹棤闅滅璇箟鑷甫锛?
   鑰屼笖**鏀惰捣鏃跺唴閮ㄧ殑 radio 浠嶇劧浼氭彁浜?* 鈥斺€?鎶樺彔涓嶈兘褰卞搷琛ㄥ崟鍊笺€?*/
.ppt-fold{border:1px solid var(--line);border-radius:16px;margin:0 0 14px;background:#fff}
.ppt-fold>summary{display:flex;align-items:center;gap:9px;padding:13px 15px;cursor:pointer;list-style:none;min-height:46px;box-sizing:border-box}
.ppt-fold>summary::-webkit-details-marker{display:none}
.ppt-fold-title{font-size:12px;font-weight:800;color:#1f5f4f}
/* 鎽樿鍚冩帀涓棿鎵€鏈夌┖闂达紝"淇敼"璐村彸杈?*/
.ppt-fold-sum{flex:1;min-width:0;font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ppt-fold-act{flex:none;font-size:11px;font-weight:750;color:#1f5f4f;border:1px solid rgba(31,95,79,.3);border-radius:999px;padding:4px 11px}
.ppt-fold[open]>summary{border-bottom:1px solid var(--line);margin-bottom:12px}
/* 灞曞紑鍚庢憳瑕佸氨娌＄敤浜嗭紙閫夐」鏈韩灏卞湪涓嬮潰锛夛紝钘忔帀閬垮厤鍚屼竴浠朵簨璇翠袱閬?*/
.ppt-fold[open] .ppt-fold-sum{display:none}
/* 灞曞紑鍚?淇敼"杩欎釜璇嶅氨涓嶅浜嗭紙宸茬粡鍦ㄦ敼锛夛紝鎹㈡垚鏀惰捣鐨勫嚭鍙ｃ€?
   鐢?CSS 鎹㈠瓧鑰屼笉鏄?JS锛氬皯涓€澶勭姸鎬佸悓姝ャ€?*/
.ppt-fold[open] .ppt-fold-act{font-size:0}
.ppt-fold[open] .ppt-fold-act::after{content:'鏀惰捣';font-size:11px}
/* 鎶樺彔鍖哄唴閮ㄧ粺涓€缂╄繘銆?*瑕佸垪鍏ㄦ墍鏈夌洿鎺ュ瓙鍏冪礌绫诲瀷**锛氳繘闃堕偅涓€灞傞噷鏈?
   textarea銆乸銆乮nput 鍜?.ppt-upload锛屽彧鍐?label/div 鐨勮瘽瀹冧滑浼氳创鍒拌竟妗嗕笂銆?*/
.ppt-fold>label,.ppt-fold>div,.ppt-fold>p,.ppt-fold>textarea,.ppt-fold>input{margin-left:15px;margin-right:15px}
/* textarea 鍜?input 鏄?box-sizing:border-box 鐨勫潡鍏冪礌锛屽乏鍙冲悇鐣?15px
   涔嬪悗瀹藉害瑕佸噺鎺?30px锛屽惁鍒欎細婧㈠嚭瀹瑰櫒 */
.ppt-fold>textarea,.ppt-fold>input{width:calc(100% - 30px)}
.ppt-fold>*:last-child{margin-bottom:14px}

/* 鈹€鈹€ 鍚搁檮鎿嶄綔鏍?鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€
   妗岄潰涓轰富锛屾墍浠ラ粯璁ゆ槸鏅€氬潡锛堜笉閬唴瀹癸級锛涚獎灞忔墠鍚稿簳鈥斺€旀墜鏈轰笂琛ㄥ崟鏇撮暱,
   婊氬埌搴曠殑鎴愭湰楂樺緱澶氥€?*/
.ppt-bar{margin-top:16px;padding-top:13px;border-top:1px solid var(--line)}
.ppt-bar-sum{margin:0 2px 10px;font-size:11.5px;color:var(--muted);line-height:1.6}
@media(max-width:720px){
  /* sticky 鑰屼笉鏄?fixed锛歠ixed 浼氳劚绂?dialog 鐨勬粴鍔ㄥ鍣紝鍦?WebView2 閲?
     浣嶇疆浼氱畻閿欍€俿ticky 璐村湪婊氬姩瀹瑰櫒搴曢儴锛岃涓虹ǔ瀹氥€?*/
  .ppt-bar{position:sticky;bottom:0;z-index:5;margin:16px -20px 0;padding:11px 20px calc(11px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line);box-shadow:0 -6px 18px rgba(23,33,27,.07)}
  .ppt-bar-sum{margin-bottom:8px;font-size:11px}
  .ppt-submit{min-height:46px}
  .ppt-direct{min-height:46px}
}

/* 涓ゆ潯璇存槑鎬ф枃妗堬細绱犳潗鍒嗗伐锛堝ぇ绾?vs 鍙傝€冭祫鏂欙級銆佷袱鏉¤矾寰勭殑宸埆銆?
   琛岄珮姣旈粯璁?field-note 鏉句竴鐐光€斺€斿畠浠槸瑕佽璇诲畬鐨勬暣鍙ワ紝涓嶆槸鏍囩鏃佺殑娉ㄨ剼銆?*/
.ppt-src-note,.ppt-path-note{line-height:1.75}
/* 璺緞璇存槑绱ц窡鍦ㄦ寜閽笅闈紝闈犱笂鏀剁揣銆佸拰鎸夐挳鎴愪竴缁?*/
.ppt-path-note{margin-top:10px}
/* 绐勫睆杩欎袱娈靛悇鑷細鎶樻垚涓よ锛堢湡鏈哄疄娴嬪洓琛岋級銆傛敹绱ц楂樺拰瀛楀彿锛?
   鍒妸鎻愪氦鎸夐挳鎺ㄥ緱鏇磋繙鈥斺€斿畠宸茬粡鍦ㄤ竴灞忎箣澶栦簡銆?*/
@media(max-width:640px){.ppt-src-note,.ppt-path-note{font-size:10.5px;line-height:1.65;margin:6px 2px}}
/* 閰嶈壊鍦ㄧ獎灞忔敼涓ゅ垪锛堝師鏉ユ槸鍗曞垪锛夈€傚洓寮犲崱鐗囧崟鍒楅摵寮€鍗犳帀蹇竴灞忥紝鑰屾瘡寮犻噷
   鍙湁涓€涓?22px 鑹插潡鍔犱簲涓瓧锛屽彸杈瑰ぇ鐗囩┖鐧?鈥斺€?鐪熸満鎴浘涓婂緢鏄庢樉銆?
   涓ゅ垪鏃舵瘡鏍肩害 175px锛?娣辫壊绉戞妧椋? + 鑹插潡鏀惧緱涓嬶紝涓嶄細鎶樿銆?
   **鍜屽彛鍚?鐗堥潰缁熶竴鎴愪袱鍒?*锛氬師鏉ラ厤鑹插崟鍒椼€佸瘑搴﹀崟鍒椼€佸彛鍚讳袱鍒楋紝鍚屼竴灞忛噷
   涓夌鍒楁暟锛屾壂涓嬫潵娌℃湁鑺傚銆?*/
@media (max-width:560px){.ppt-themes{grid-template-columns:1fr 1fr}.theme-opt{min-height:44px;padding:10px;font-size:12.5px;gap:7px}}
#pptResult.error #pptResultTitle{color:#b4483c}#pptResultNote{margin:10px 0 0;font-size:13px;color:var(--muted);line-height:1.6}#pptError{margin:8px 0 0;font-size:13px;color:#b4483c;line-height:1.6}
#pptDownload{font-weight:750;color:#1f5f4f}
.ghost-btn{border:1.5px solid rgba(31,95,79,.35);background:#fff;color:#1f5f4f;border-radius:10px;padding:6px 12px;font-size:12px;font-weight:700;cursor:pointer;transition:.16s}
.ghost-btn:hover:not(:disabled){background:rgba(31,95,79,.09);border-color:rgba(31,95,79,.6)}
.ghost-btn:disabled{opacity:.45;cursor:not-allowed}
.ppt-edit{margin:14px 0 0;padding:14px 0 0;border-top:1px solid var(--line)}
.ppt-edit.is-busy{opacity:.6;pointer-events:none}
.ppt-edit-head{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}
.ppt-edit-head strong{font-size:13px}
.ppt-edit-head small{font-size:12px;color:var(--muted)}
/* 椤垫暟鏈€澶?40锛岀粰鍥哄畾楂樺害鍔犳粴鍔紝涓嶈鍒楄〃鎶婂脊绐楁拺鐖嗐€?
   overscroll-behavior:contain 鈥斺€?瑙?.ppt-outline-rows 閭ｆ潯鐨勬敞閲婏紝
   涓変釜鍐呭眰婊氬姩瀹瑰櫒鍚屼竴涓悊鐢便€?*/
.ppt-pages{display:flex;flex-direction:column;gap:6px;max-height:290px;overflow-y:auto;overscroll-behavior:contain;padding-right:4px}
.ppt-page{display:flex;align-items:center;gap:11px;padding:8px 10px;border:1px solid var(--line);border-radius:11px;background:rgba(31,95,79,.028)}
.ppt-page>b{font-size:12px;font-weight:750;color:#1f5f4f;font-variant-numeric:tabular-nums;flex:none}
.ppt-page-info{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.ppt-page-info span{font-size:13px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ppt-page-info small{font-size:11px;color:var(--muted)}
.ppt-page-lock{font-size:11px;color:var(--muted);flex:none}
.ppt-page-actions{display:flex;align-items:center;gap:6px;flex:none}
.ppt-page-actions select{border:1.5px solid var(--line);border-radius:10px;padding:6px 8px;font-size:12px;background:#fff;cursor:pointer;max-width:118px}
/* 搴曢儴涓€琛岋細閰嶈壊/鐗堥潰涓や釜涓嬫媺闈犲乏锛屻€岄噸鏂板鍑恒€嶉潬鍙炽€?
   gap + margin-right:auto 鑰屼笉鏄?space-between锛氭寜閽濮嬬粓璐村彸杈圭紭锛?
   鑰屼笅鎷夋暟閲忎互鍚庡彲鑳藉彉锛堝悗绔姞涓€妗ｅ氨澶氫竴涓級锛宻pace-between 浼氭妸瀹冧滑鎽婂紑 */
.ppt-edit-foot{display:flex;align-items:center;gap:10px;margin-top:11px}
.ppt-edit-foot .ghost-btn{margin-left:auto}
.ppt-restyle{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.ppt-restyle select{padding:5px 8px;font:inherit;color:var(--ink);
  background:var(--panel);border:1px solid var(--line);border-radius:7px}
/* 涓嬫媺鏀逛簡杩樻病搴旂敤锛氭寜閽**鏄庢樉**鍙樻牱锛屽惁鍒?閫夊畬灏变互涓哄ソ浜?銆?
   鐢ㄥ疄蹇冭€屼笉鏄姞涓竟妗嗭細ghost-btn 鏈潵灏辨湁杈规锛屽彧鏀归鑹插湪灏忓昂瀵镐笅鐪嬩笉鍑恒€?*/
.ppt-edit-foot .ghost-btn.is-pending{background:#1f5f4f;border-color:#1f5f4f;color:#fff}
.ppt-edit-foot .ghost-btn.is-pending:hover:not(:disabled){background:#174c40;border-color:#174c40}
.ppt-restyle-tip{display:block;margin-top:7px;font-size:12px;color:var(--muted);line-height:1.6}
.ppt-restyle-tip.is-pending{color:#1f5f4f;font-weight:650}
/* 鍒嗕韩閾炬帴 */
.ppt-share{margin:14px 0 0;padding:14px 0 0;border-top:1px solid var(--line)}
.ppt-share-head{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}
.ppt-share-head strong{font-size:13px}
.ppt-share-head small{font-size:12px;color:var(--muted)}
.ppt-share-new{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.ppt-share-new label{font-size:12px;color:var(--muted)}
.ppt-share-new select{border:1.5px solid var(--line);border-radius:10px;padding:6px 8px;font-size:12px;background:#fff;cursor:pointer}
/* overscroll-behavior:contain 鍚?.ppt-outline-rows锛岀悊鐢辫閭ｉ噷 */
.ppt-share-rows{display:flex;flex-direction:column;gap:6px;max-height:190px;overflow-y:auto;overscroll-behavior:contain;padding-right:4px}
.ppt-share-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:11px;background:rgba(31,95,79,.028)}
/* 澶辨晥/杩囨湡鐨勮鍘嬫殫浣嗕笉闅愯棌鈥斺€旂敤鎴疯鑳界湅鍒拌嚜宸卞彂鍑鸿繃鍑犱釜閾炬帴 */
.ppt-share-row.dead{opacity:.55}
.ppt-share-url{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:9px;padding:6px 8px;font-size:12px;background:#fff;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.ppt-share-url:focus{outline:none;border-color:rgba(31,95,79,.62)}
.ppt-share-meta{font-size:11px;color:var(--muted);white-space:nowrap;flex:none}
.ppt-share-row .ghost-btn{flex:none;padding:5px 10px}
.ppt-share-row .ghost-btn.danger{border-color:rgba(179,38,30,.35);color:#b3261e}
.ppt-share-row .ghost-btn.danger:hover:not(:disabled){background:rgba(179,38,30,.07);border-color:rgba(179,38,30,.6)}
.ppt-share-empty{font-size:12px;color:var(--muted);margin:0}
/* 涓ゆ寮忓叆鍙ｏ細涓绘寜閽?+ 娆＄骇"鐩存帴鐢熸垚" */
.ppt-actions{display:flex;align-items:stretch;gap:10px}
.ppt-actions .submit-btn{flex:1}
.ppt-direct{flex:none;padding:0 16px;white-space:nowrap}
/* 澶х翰纭 */
.ppt-outline{margin:14px 0 0;padding:14px 0 0;border-top:1px solid var(--line)}
.ppt-outline.is-busy{opacity:.6;pointer-events:none}
/* 杈撳叆鎻愮ず锛堝ぇ绾茶鎴柇涔嬬被锛夈€傜惀鐝€鑹茶竟妗嗭紝姣旀鏂囪鏄庢樉鐪硷紝鍙堜笉鏄姤閿欑殑绾?*/
.ppt-input-note{margin:0 0 10px;padding:8px 11px;border-left:3px solid #b58a2b;border-radius:0 9px 9px 0;background:rgba(181,138,43,.09);font-size:12px;line-height:1.6;color:#6d5117}
/* 椤垫暟鍋忓樊鎻愮ず銆傚埢鎰?*涓嶇敤** input-note 閭ｅ鐞ョ弨鑹茶绀烘牱寮忥細
   椤垫暟澶氬嚑椤典笉鏄敊璇紝鍐呭鏄畬鏁寸殑锛岀敤鎴峰畬鍏ㄥ彲浠ュ氨杩欎箞纭銆?
   鐢ㄤ腑鎬х殑鐏拌摑锛屽憡鐭ヨ€屼笉鏂藉帇銆?*/
.ppt-page-gap{margin:0 0 10px;padding:8px 11px;border-left:3px solid #5b6b78;border-radius:0 9px 9px 0;background:rgba(91,107,120,.07);font-size:12px;line-height:1.6;color:#3f4c56}
.ppt-input-note[hidden]{display:none}
/* 鈹€鈹€ 缁撴灉鍖虹殑绐勫睆閫傞厤锛堢湡鏈烘埅鍥鹃€愭潯瀵瑰嚭鏉ョ殑涓変釜缂洪櫡锛?鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€
   杩欎竴鍧椾箣鍓嶄竴娆￠兘娌″湪鎵嬫満涓婄湅杩囷紝閰嶇疆椤垫敼瀹屾墠鍙戠幇闂鍏ㄥ湪杩欓噷銆?

   涓€銆併€岀珷鑺傚垎闅旈〉銆嶉偅琛屽瓧琚帇鎴愪簡涓€鍒楀崟瀛楋紙"闅旈〉锛堢珷鑺傚皝闈紝涓嶆槸鍐呭椤碉級"
   绔栫潃鎺掍笅鏉ュ崰鎺夊崐灞忥級銆傛牴鍥犱笉鏄瓧鍙蜂篃涓嶆槸鎹㈣锛?ppt-page-lock 鍙啓浜?
   flex:none锛岃€屽畠澶瑰湪 flex:1 鐨?info 鍜?flex:none 鐨?actions 涓棿 鈥斺€?
   绐勫睆涓婂墿浣欏搴︿笉澶燂紝flex 瀹瑰櫒灏辨妸瀹冨帇鍒版渶灏忓唴瀹瑰搴︼紝涔熷氨鏄竴涓瓧銆?
   缁欏畠 flex-basis:100% 璁╁畠鑷繁鍗犱竴琛岋紙.ppt-page 鏈潵灏辨湁 flex-wrap:wrap锛夈€?

   浜屻€佷笅杞介偅涓€鎺掞紙宸茬敓鎴?12 椤?/ 缃戦〉鐗堟斁鏄?/ 涓嬭浇 .pptx / PDF / HTML锛?
   浜斾釜鍏冪礌鎸ゅ湪涓€琛岄噷鎹㈣鎴愪袱琛岋紝涓?space-between 鎶婂畠浠憡寰椾竷闆跺叓钀姐€?
   绐勫睆鏀规垚涓婁笅涓ゅ潡锛氭爣棰樹竴琛岋紝鍔ㄤ綔鎹㈣宸﹀榻愩€?

   涓夈€佸簳閮ㄣ€岄厤鑹?/ 鐗堥潰 / 閲嶆柊瀵煎嚭銆嶄笁浠舵尋涓€琛岋紝涓や釜涓嬫媺琚帇鍒扮湅涓嶅叏
   锛?鏆栬壊缂栬緫鈻?琚埅鏂級銆傜獎灞忔敼鎴愮珫鎺掞紝涓嬫媺鍗犳弧瀹藉害銆?*/
@media(max-width:640px){
  /* 涓€ */
  .ppt-page-lock{flex-basis:100%;order:9;margin-top:2px}
  /* 浜?*/
  .result-head{flex-direction:column;align-items:flex-start;gap:8px}
  .result-actions{flex-wrap:wrap;gap:8px 14px;width:100%}
  /* 涓?*/
  .ppt-edit-foot{flex-direction:column;align-items:stretch;gap:8px}
  .ppt-edit-foot .ghost-btn{margin-left:0;min-height:40px}
  /* 绐勫睆鎸夐挳鍚嶄細鎹㈣锛?搴旂敤鍒板叏閮ㄩ〉闈?路鏈敓鏁? 12 涓瓧锛夛紝鍘嬩竴妗ｅ瓧鍙?
     骞跺厑璁告崲琛岋紝姣旀í鍚戞孩鍑哄ソ */
  .ppt-edit-foot .ghost-btn{white-space:normal;line-height:1.35}
  .ppt-restyle{justify-content:space-between}
  .ppt-restyle select{flex:1;min-width:0;min-height:36px}
  /* 鎹㈢増寮忛偅涓笅鎷夊悓鐞嗭細绐勫睆鍒檺姝?118px锛屽畠瑕佹斁寰椾笅"鍥炬枃骞舵帓"杩欑鍥涘瓧鏍囩 */
  .ppt-page-actions{flex-wrap:wrap;gap:6px}
  .ppt-page-actions select{max-width:none;flex:1;min-width:120px;min-height:36px}
  /* 鍥涖€佺湅澶у浘寮瑰眰锛氱獎灞忛摵婊″搴︺€佽创搴曞嚭鐜帮紙鍜屽叾浠?modal 涓€鑷寸殑鎵嬪娍锛夛紝
     缈婚〉鎸夐挳瑕佸澶ц兘鐐广€傚搴︿笉鍐嶆寜瑙嗗彛楂樺弽鎺ㄢ€斺€旂珫灞忎笂 84vh*16/9 姣斿睆杩樺銆?*/
  .ppt-viewer{width:100vw;max-width:100vw;border-radius:14px 14px 0 0;margin:auto auto 0}
  .ppt-viewer-head{flex-direction:column;align-items:stretch;gap:8px}
  .ppt-viewer-nav{justify-content:space-between}
  .ppt-viewer-nav button{flex:1;min-height:40px}
  /* 绔栧睆涓?鈫?鈫?閿彁绀烘病鏈夋剰涔夛紙娌℃湁閿洏锛夛紝鍙暀缈婚〉鎸夐挳 */
  .ppt-viewer-tip{display:none}
}
/* 鐗堝紡绾挎绀烘剰銆?*涓嬫媺鍜屽畠鍖呭湪 .ppt-pick 閲?*锛屾墍浠?.ppt-orow 浠嶇劧鍙湁
   鍥涗釜鐩存帴瀛愬厓绱?鈥斺€?鍔犵浜斾釜鑰屼笉鍦ㄧ獎灞忛噷鍐?grid-column锛屽氨浼氶噸鐜颁笅闈?
   閭ｆ娉ㄩ噴璁扮殑浜嬫晠锛堟爣棰樿緭鍏ユ濉屾垚 70px 绌烘柟鍧楋級銆?*/
.ppt-pick{display:flex;align-items:center;gap:6px;min-width:0}
.ppt-pick>select{min-width:0;flex:1 1 auto}
.ppt-shape{flex:0 0 auto;width:46px;height:26px;border:1px solid var(--line);
  border-radius:5px;background:#fff;color:#1f5f4f;display:block;overflow:hidden}
.ppt-shape>svg{display:block;width:100%;height:100%}
/* 鏌ヤ笉鍒板浘褰紙鏂扮増寮忚繕娌＄敾锛夋椂涓嶈鐣欎竴涓┖鐧芥鍦ㄩ偅鍎垮亣瑁呮湁涓滆タ */
.ppt-shape.is-empty{display:none}
/* 鎴愮椤甸偅涓€琛岋細绾挎璺熷湪鐗堝紡鍚嶅墠闈紝灏哄灏忎竴妗ｃ€佸瀭鐩村眳涓榻愭枃瀛?*/
.ppt-page-info small .ppt-shape{width:34px;height:19px;display:inline-block;
  vertical-align:-5px;margin-right:5px;border-radius:4px}
/* overscroll-behavior:contain锛氬唴灞傛粴鍒拌竟鐣屽氨鍋滐紝涓嶆妸鍓╀笅鐨勬粴鍔ㄩ噺浜ょ粰
   澶栭潰鐨?.modal-panel锛堝畠鑷繁涔熸槸 overflow:auto 鐨勬粴鍔ㄥ鍣級銆?

   娴忚鍣ㄩ粯璁ょ殑閾惧紡婊氬姩鍦ㄨ繖涓変釜瀹瑰櫒涓婇兘涓嶅悎閫傦紝鍥犱负**瀹冧滑瑁呯殑鏄閫愭潯
   鏍稿鐨勬竻鍗曪紝涓嶆槸涓€绡囪涓嬪幓鐨勬枃妗?*锛氬ぇ绾茶 340px 閲屽鍗佸嚑鏉★紝鐢ㄦ埛姝ｅ湪
   鍐冲畾鏀瑰摢涓€绔狅紝杩欐椂鍊欓〉闈㈡暣浣撲笂绉诲埌"鎻愪氦"鎸夐挳閭ｉ噷鏄渶鍧忕殑鏃舵満 鈥斺€?
   鎵嬫寚娌″仠銆佸唴瀹硅烦璧颁簡锛屼綅缃劅灏辨柇浜嗐€傛墜鏈轰笂鏇存槑鏄撅細瑙︽懜婊氬姩甯︽儻鎬э紝
   閾惧紡浼氭妸鎯€т竴璧蜂紶涓嬪幓锛屼竴鐢╂粦鎺変竴鏁村睆銆?

   鐢?contain 涓嶇敤 none锛歯one 浼氳繛甯︾鎺夋墜鏈轰笅鎷夊埛鏂伴偅绫昏竟鐣屾墜鍔匡紝
   閭ｆ槸澶氱浜嗐€俢ontain 鍙嫤"浼犵粰澶栧眰"杩欎竴浠朵簨锛屽唴灞傛病鍒板簳鏃剁収甯告粴锛?
   鐢ㄦ埛鐩存帴婊戦潰鏉跨┖鐧藉涔熺収甯告粴銆?*/
.ppt-outline-rows{display:flex;flex-direction:column;gap:7px;max-height:340px;overflow-y:auto;overscroll-behavior:contain;padding-right:4px}
.ppt-orow{display:grid;grid-template-columns:26px 118px minmax(0,1fr) auto;gap:8px;align-items:start;padding:8px 9px;border:1px solid var(--line);border-radius:11px;background:rgba(31,95,79,.028)}
.ppt-orow>b{font-size:12px;font-weight:750;color:#1f5f4f;font-variant-numeric:tabular-nums;padding-top:8px}
.ppt-orow.is-section{background:rgba(31,95,79,.075);border-color:rgba(31,95,79,.3)}
.ppt-orow select,.ppt-orow input{border:1.5px solid var(--line);border-radius:9px;padding:6px 8px;font-size:12px;background:#fff;font-family:inherit;width:100%;box-sizing:border-box}
.ppt-orow input:focus,.ppt-orow select:focus{outline:none;border-color:rgba(31,95,79,.62)}
.ppt-ofields{display:flex;flex-direction:column;gap:5px;min-width:0}
.ppt-ofields input.is-bad{border-color:#b3261e;background:rgba(179,38,30,.05)}
.ppt-orow-btns{display:flex;gap:3px;padding-top:3px}
.ppt-orow-btns button{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:8px;width:26px;height:28px;font-size:13px;line-height:1;cursor:pointer;padding:0}
.ppt-orow-btns button:hover:not(:disabled){border-color:rgba(31,95,79,.55);color:#1f5f4f}
.ppt-orow-btns button:disabled{opacity:.34;cursor:not-allowed}
.ppt-outline-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}
.ppt-outline-foot-right{display:flex;align-items:center;gap:11px}
.ppt-outline-count{font-size:12px;color:var(--muted)}
/* 绐勫睆杩欎竴琛岃涓嶄笅涓変釜鍏冪礌锛氱湡鏈烘埅鍥鹃噷銆岋紜 鍔犱竴椤点€嶆姌鎴愪簡銆岋紜 鍔犱竴 / 椤点€嶏紝
   銆? 椤靛唴瀹?+ 灏侀潰鑷磋阿 = 11 椤点€嶄篃鎶樻垚涓よ銆傛敼鎴愪笂涓嬩袱琛屸€斺€?
   **纭鎸夐挳鐙崰涓€琛屽苟閾烘弧**锛屽畠鏄繖涓€灞忕殑鐩殑锛屼笉璇ュ拰鍔犻〉鎸夐挳鎶㈠搴︺€?*/
@media(max-width:640px){
  .ppt-outline-foot{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px}
  #pptOutlineAdd{min-height:40px;white-space:nowrap}
  .ppt-outline-count{text-align:right}
  .ppt-outline-foot-right{display:contents}
  .ppt-confirm{grid-column:1/3;width:100%;min-height:46px}
}
.ppt-confirm{width:auto;padding:0 18px;flex:none}
/* 缂╃暐鍥鹃瑙?*/
.ppt-page{flex-wrap:wrap}
.ppt-thumb{flex:none;width:104px;height:58px;border-radius:7px;border:1px solid var(--line);background:#e9e3d8 center/cover no-repeat;cursor:pointer;transition:.16s;padding:0;display:block}
.ppt-thumb:hover{border-color:rgba(31,95,79,.65);transform:scale(1.03)}
.ppt-thumb.is-stale{opacity:.5}
/* 鐪嬪ぇ鍥惧脊灞傘€傚搴︽寜 16:9 浠?*瑙嗗彛楂樺害**鍙嶆帹锛屽彇 min锛氳繖鏍锋í灞忓拰绔栧睆
   閮戒笉浼氬嚭鐜?鍥炬瘮灞忓箷楂樸€佽婊氬姩鎵嶇湅寰楀叏"鈥斺€旂湅澶у浘鐨勬剰涔夊氨鏄竴鐪肩湅鍏ㄣ€?*/
.ppt-viewer{border:0;padding:0;border-radius:16px;background:#fbf9f4;width:min(96vw,calc(84vh*16/9));max-width:1400px;box-shadow:0 24px 80px rgb(0 0 0/32%)}
.ppt-viewer::backdrop{background:rgb(0 0 0/62%)}
.ppt-viewer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid var(--line)}
.ppt-viewer-head strong{font-size:12px;font-weight:800}
.ppt-viewer-nav{display:flex;align-items:center;gap:8px}
.ppt-viewer-nav button:disabled{opacity:.4;cursor:default}
.ppt-viewer img{display:block;width:100%;aspect-ratio:16/9;object-fit:contain;background:#e9e3d8}
.ppt-viewer-tip{display:block;padding:8px 14px;color:var(--muted);font-size:11px}
.ppt-fields{flex-basis:100%;display:none;flex-direction:column;gap:7px;margin-top:9px;padding-top:10px;border-top:1px dashed var(--line)}
.ppt-page.is-open .ppt-fields{display:flex}
.ppt-field{display:grid;grid-template-columns:82px minmax(0,1fr);gap:8px;align-items:center}
.ppt-field>label{font-size:11px;color:var(--muted);font-weight:650;text-align:right}
.ppt-field input,.ppt-field textarea{border:1.5px solid var(--line);border-radius:9px;padding:6px 8px;font-size:12px;font-family:inherit;width:100%;box-sizing:border-box;background:#fff}
.ppt-field textarea{resize:vertical;min-height:34px}
.ppt-field input.is-bad,.ppt-field textarea.is-bad{border-color:#b3261e;background:rgba(179,38,30,.05)}
.ppt-field-err{grid-column:2;font-size:11px;color:#b3261e;margin:-3px 0 0}
.ppt-group{border:1px solid var(--line);border-radius:9px;padding:8px;background:rgba(31,95,79,.02)}
.ppt-group>strong{display:block;font-size:11px;color:var(--muted);margin-bottom:6px}
.ppt-fields-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}
/* 澶х翰琛屽湪绐勫睆锛?*姣忎釜瀛愬厓绱犻兘瑕佹樉寮忔寚瀹氬崰鍝竴鍒?*銆?
   鐪熸満鎴浘閲屾爣棰樺拰璇存槑杈撳叆妗嗗鎴愪簡涓や釜 70px 鐨勭┖鏂瑰潡銆佹枃瀛楀畬鍏ㄧ湅涓嶈鈥斺€?
   鐢ㄦ埛鍦ㄦ墜鏈轰笂鏍规湰鏀逛笉浜嗗ぇ绾诧紝鑰?鑳芥敼鏍囬銆佹崲鐗堝紡銆佽皟椤哄簭"姝ｆ槸杩欐潯璺緞
   瀛樺湪鐨勭悊鐢便€?
   鎴愬洜锛氭闈㈡槸 `26px 118px minmax(0,1fr) auto` 鍥涘垪锛岀獎灞忔敼鎴愪袱鍒楋紝浣嗚鍐?
   鏈夊洓涓瓙鍏冪礌銆傚彧鏈?.ppt-orow-btns 鍐欎簡 grid-column锛屽叾浣欎袱涓殣寮忔祦鍏モ€斺€?
   鐗堝紡鍗犱簡绗?2 鍒楋紝瀛楁琚尋鍒伴殣寮忕殑绗?3 鍒楋紝鑰?.ppt-ofields 鏄?min-width:0锛?
   浜庢槸濉屽埌鏈€灏忓搴︺€?
   **鏁欒**锛氭敼 grid-template-columns 鍑忓皯鍒楁暟鏃讹紝蹇呴』鎶婃瘡涓瓙椤圭殑钀戒綅涓€璧?
   浜や唬娓呮锛岄殣寮忔祦鍏ュ湪鍒楁暟鍙樺寲鏃惰涓哄畬鍏ㄤ笉鍚屻€?*/
@media(max-width:640px){
  .ppt-orow{grid-template-columns:22px minmax(0,1fr);row-gap:7px}
  /* 搴忓彿璺ㄦ弧涓夎锛屽彸杈逛笁鍧楀悇鍗犱竴琛屻€備笉璺ㄧ殑璇濆簭鍙峰彧鍦ㄧ涓€琛屻€?
     涓嬮潰涓よ鐨?22px 鐧藉垪绾氮璐癸紝鑰岀獎灞忔渶缂虹殑灏辨槸妯悜绌洪棿 */
  .ppt-orow>b{grid-row:1/4}
  /* 鐗堝紡閭ｅ潡鍜屽瓧娈靛尯鍚勫崰婊＄ 2 鍒楃殑涓€鏁磋銆?
     **钀戒綅瑕佸啓鍦?.ppt-pick 涓婏紝涓嶆槸 .ppt-orow>select銆?* 鍔犵嚎妗嗗浘涔嬪悗
     select 琚寘杩涗簡 .ppt-pick锛屽氨涓嶅啀鏄?.ppt-orow 鐨勭洿鎺ュ瓙鍏冪礌浜嗭紝
     閭ｆ潯瀛愰€夋嫨鍣ㄤ簬鏄潤榛樺け閰嶏紙CSS 涓嶆姤閿欙級鈥斺€?姝ｆ槸涓婇潰杩欐娉ㄩ噴璁扮殑
     浜嬫晠鐨勫鍙戝舰寮忥細闅愬紡娴佸叆 + min-width:0 = 濉屾垚绌烘柟鍧椼€?*/
  .ppt-pick{grid-column:2}
  .ppt-ofields{grid-column:2}
  .ppt-orow-btns{grid-column:2;justify-content:flex-end}
  .ppt-field{grid-template-columns:1fr}
  .ppt-field>label{text-align:left}
}
.history-link{color:inherit;text-decoration:none;cursor:pointer;transition:background .18s ease,padding .18s ease}.history-link:hover{background:rgba(36,88,67,.055);padding-left:10px;padding-right:10px}.history-link:focus-visible{outline:3px solid rgba(36,88,67,.25);outline-offset:2px}
.detail-page{background:var(--paper)}.run-detail{max-width:900px;margin:auto;padding:48px 28px 80px}.back-link{display:inline-block;margin-bottom:44px;color:var(--green);font-size:13px;font-weight:750;text-decoration:none}.run-detail h1{font-family:Georgia,"Noto Serif SC",serif;font-size:38px;line-height:1.25;margin:0;word-break:break-word}.detail-meta{margin-top:14px;color:var(--muted);font-size:12px}.detail-result,.detail-section,.detail-error{margin-top:32px;border-top:1px solid var(--line);padding-top:22px}.detail-result-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.run-detail h2{margin:0 0 14px;font-size:18px}.detail-result img{display:block;width:100%;max-height:72vh;object-fit:contain;background:#e9e3d8;border-radius:8px}.download-btn{flex:none;padding:10px 15px;border-radius:8px;background:var(--green);color:#fff;text-decoration:none;font-size:12px;font-weight:750}.detail-section pre{margin:0;padding:18px;background:var(--cream);border:1px solid var(--line);border-radius:8px;white-space:pre-wrap;word-break:break-word;font:13px/1.7 "Segoe UI","Microsoft YaHei",sans-serif}.detail-error{color:#a34d31}.detail-error p{line-height:1.7;word-break:break-word}@media(max-width:720px){.history-item{grid-template-columns:38px minmax(0,1fr);gap:12px}.history-state{grid-column:2}.run-detail{padding:28px 18px 60px}.back-link{margin-bottom:32px}.run-detail h1{font-size:29px}.detail-result-head{align-items:start}.detail-result img{max-height:62vh}}
.detail-ppt-result{padding:22px;border:1px solid var(--line);border-radius:12px;background:var(--cream)}.detail-ppt-result .detail-result-head h2{margin-bottom:6px}.detail-ppt-result p{margin:0;color:var(--muted);font-size:13px}@media(max-width:520px){.detail-ppt-result .detail-result-head{display:grid}.detail-ppt-result .download-btn{text-align:center;margin-top:10px}}
.platform-picker{border:0;padding:0;margin:18px 0 0;min-width:0}.platform-picker legend{font-size:12px;font-weight:750;padding:0;margin-bottom:8px}.platform-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.platform-option{display:flex;flex-direction:column;gap:4px;margin:0!important;padding:12px;border:1.5px solid var(--line);border-radius:12px;background:#f8f5ee;cursor:pointer;transition:.18s}.platform-option:hover{border-color:rgba(94,83,133,.5)}.platform-option.is-on{border-color:#5e5385;background:rgba(94,83,133,.09);box-shadow:0 2px 10px rgba(94,83,133,.1)}.platform-option input{position:absolute;opacity:0;pointer-events:none}.platform-option strong{font-size:12px}.platform-option small{font-size:10px;color:var(--muted)}.platform-spec{display:flex;justify-content:space-between;align-items:center;margin-top:9px;padding:9px 12px;border-radius:10px;background:rgba(94,83,133,.055);font-size:11px;color:var(--muted)}.platform-spec strong{color:#5e5385}.image-style-row{margin-top:12px}.image-style-row input{width:100%;border:1px solid var(--line);border-radius:14px;background:#f8f5ee;color:var(--ink);padding:14px;outline:none}.image-style-row input:focus{border-color:#5e5385;box-shadow:0 0 0 3px rgba(94,83,133,.08)}
.home-button{padding:8px 12px 8px 8px;border:1px solid transparent;border-radius:16px;transition:background .18s,border-color .18s,box-shadow .18s,transform .18s}.home-button:hover{background:rgba(255,253,248,.85);border-color:var(--line);box-shadow:0 8px 22px rgba(35,44,37,.09);transform:translateY(-1px)}.home-button:active{transform:translateY(0)}.home-button:focus-visible{outline:3px solid rgba(36,88,67,.28);outline-offset:3px}.home-hint{display:flex;align-items:center;gap:5px;margin-left:7px;padding-left:11px;border-left:1px solid var(--line);color:var(--green);font-size:11px;font-weight:750;letter-spacing:0;white-space:nowrap}.home-arrow{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:rgba(36,88,67,.1);font-size:15px;line-height:1}
@media(max-width:560px){.platform-options{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-option{padding:10px}.platform-option strong{font-size:11px}}
@media(max-width:560px){.home-button{gap:8px;padding:6px 8px 6px 6px}.brand-name{font-size:15px}.home-hint{margin-left:2px;padding-left:8px;font-size:10px}.home-arrow{width:20px;height:20px}.topbar{padding-left:12px;padding-right:14px}}
/* 椤舵爮鍔犱簡銆岄€€鍑恒€嶄箣鍚庢槸涓変釜瀛愬厓绱犱簡銆傛寜瀛楃瀹藉害绠椾笅鐣岋紝320px 灞忎笂
   宸?181 + 鍙?93 = 274px锛屽彲鐢ㄥ彧鏈?280px 鈥斺€?浣?6px銆?*涓嬬晫鍙細浣庝及**
   锛堢湡瀹炲瓧璺濇洿瀹斤級锛屾墍浠ヨ繖灏辨槸婧㈠嚭銆?topbar 鏄?space-between锛屾尋鐨勬椂鍊?
   鍏堝帇宸﹁竟锛屻€屽簲鐢ㄤ腑蹇冦€嶄細鎶樿 鈥斺€?#63 鍒氳俯杩囧悓涓€涓舰鐘躲€?

   鐮嶆帀鐨勬槸銆岃繑鍥炰富椤点€嶈繖涓彁绀猴細鏁翠釜鍝佺墝鍧楁湰韬氨鏄洖棣栭〉鐨勯摼鎺ワ紝
   鎻愮ず鏄?*鍦ㄤ竴涓凡缁忚兘鐐圭殑涓滆タ鏃佽竟瑙ｉ噴瀹冭兘鐐?*锛屾闈笂鏄杽鎰忕殑鍐椾綑锛?
   鎵嬫満涓婃槸鑺?72px 涔板啑浣欍€傚浘鏍囧拰绔欏悕閮界暀鐫€锛屽姛鑳戒竴鐐规病灏戙€?*/
@media(max-width:420px){.home-hint{display:none}}
.image-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;border-radius:14px;background:#eee9df;margin-bottom:18px}.image-mode-switch button{border:0;border-radius:10px;padding:11px;background:transparent;color:var(--muted);font-size:12px;font-weight:750;cursor:pointer}.image-mode-switch button.is-on{background:var(--cream);color:#5e5385;box-shadow:0 2px 9px rgba(35,44,37,.1)}.compact-upload{min-height:125px!important}.consent-check{justify-content:flex-start!important;align-items:center;gap:8px;color:var(--muted);font-weight:600!important}.consent-check input{accent-color:#5e5385}.background-task-note{color:var(--muted);font-size:11px}
.card-live{background:#252124;color:#fff;border-color:transparent}.card-live p{color:rgba(255,255,255,.7)}.card-live .app-icon{width:60px;background:#d94b42;font-size:12px;letter-spacing:.08em}.card-live .status{background:rgba(255,255,255,.12);color:#fff}.card-live .status.ready{background:#dfeee5;color:#326c4f}.card-live .status.offline{background:#f2dfd7;color:#a45031}

/* 杈撶爜/瀵嗙爜涓ゆ潯璺箣闂寸殑鍒囨崲閾炬帴銆?*蹇呴』鑷繁閲嶇疆鐩掓ā鍨?*锛氬畠鏄釜 button锛?
   娴忚鍣ㄩ粯璁ょ粰杈规鍜岀伆搴曪紝涓嶉噸缃氨鏄脊绐楅噷韫﹀嚭涓伆鎸夐挳锛堣 feedback_css_override锛夈€?*/
.login-alt{margin:0;text-align:center;font-size:13px;color:#71717a}
.linklike{border:0;background:none;padding:0;font:inherit;color:#1f5f4f;text-decoration:underline;cursor:pointer}
.linklike:hover{color:#123b31}

.result-cta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:16px 17px 0}
/* display:flex 浼氬帇鎺?hidden 灞炴€э紙榛樿鏍峰紡鐨?display:none 鏉冮噸鏈€浣庯級锛?
   鎵€浠?#pptCta 鍦ㄧ敓鎴愪箣鍓嶅氨鏄剧ず鐫€涓€涓?href="#" 鐨勭┖涓嬭浇鎸夐挳銆?
   鍚屼竴涓潙鍦?.login-panel 涓婁篃鏈夛紝瑙侀偅鏉℃敞閲娿€?*/
.result-cta[hidden]{display:none}
.result-cta-main{display:inline-flex;align-items:center;gap:12px;padding:14px 22px;border-radius:14px;background:var(--orange);color:#fff;text-decoration:none;box-shadow:0 8px 22px rgba(198,97,10,.24)}
.result-cta-main:hover{background:#a94f08;box-shadow:0 10px 26px rgba(198,97,10,.32)}
.result-cta-icon{font-size:19px;font-weight:800;line-height:1}
.result-cta-text{display:flex;flex-direction:column;gap:1px;text-align:left}
.result-cta-text b{font-size:15px;font-weight:800}
.result-cta-text small{font-size:11px;font-weight:600;color:rgba(255,255,255,.82)}
.result-cta-alt{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.result-cta-alt a{font-size:11px;font-weight:750;color:var(--green);text-decoration:none}
.result-cta-alt a:hover{text-decoration:underline}
@media(max-width:560px){
  /* 鎵嬫満涓婁富鎸夐挳鍗犳弧瀹斤細杩欐槸鎴愮鍚庡敮涓€鎯崇偣鐨勪笢瑗匡紝涓嶈鍜屾绾ч摼鎺ユ姠涓€琛屻€?
     52px 楂橈紝鏄庢樉楂樹簬 44px 鐨勮Е鎽哥洰鏍囦笅闄愩€?*/
  .result-cta{padding:14px 14px 0;gap:12px}
  .result-cta-main{width:100%;box-sizing:border-box;min-height:52px;justify-content:center}
  .result-cta-alt{width:100%;gap:16px}
}

/* .login-panel 璁句簡 display:grid锛岃€?HTML 鐨?hidden 灞炴€ч潬鐨勬槸娴忚鍣?
   榛樿鏍峰紡 display:none 鈥斺€?閭ｆ潯鏉冮噸鏈€浣庯紝浠讳綍鏄惧紡 display 閮藉帇杩囧畠銆?
   浜庢槸 <form hidden class="login-panel"> 閲岀殑 hidden 闈欓潤澶辨晥锛?
   銆岃緭鍏ュ厖鍊肩爜銆嶅拰銆岀櫥褰?AI 搴旂敤涓績銆嶄袱鍧椾竴璧锋樉绀猴紙08-29 鐢ㄦ埛鎴浘鍙戠幇锛夈€?
   妯℃澘閫昏緫鏄鐨勩€乭idden 涔熺‘瀹炲啓涓婁簡锛屽潖鍦?CSS 杩欎竴灞傘€?
   swapTo() 鍒囨崲闈犵殑涔熸槸 .hidden锛屾墍浠ヨ繖鏉¤鍒欏悓鏃朵慨浜嗐€屽垏杩囧幓鏃х殑閭ｅ潡
   涓嶆秷澶便€嶃€?*/
.login-panel[hidden]{display:none}

/* 鈹€鈹€鈹€ 鍏嶈垂璇曠敤寮曞鍧楋紙鐧诲綍寮规閲岋紝杈撶爜涔嬪墠閭ｄ竴娈碉級 鈹€鈹€鈹€
   杩欏嚑涓被涔嬪墠鍦?index.html 閲岀敤浜嗕絾 app.css 閲屾病鏈夎鍒欙紝鎵€浠ヨ瘯鐢ㄥ潡鏄?
   娴忚鍣ㄩ粯璁ゆ牱寮忥細鎸夐挳鏄伆鑹插皬鏂瑰潡銆佸拰涓嬮潰鐨勮緭鐮佸尯娌℃湁鍒嗙晫銆?*/
.trial-lead{display:grid;gap:10px}
.trial-lead h2,.trial-lead p{margin:0}
/* btn-primary 涔熸病鏈夊畾涔夎繃銆傝窡 #login-submit 鐢ㄥ悓涓€濂楋紙娣卞ⅷ搴曠櫧瀛楋級锛?
   鍥犱负瀹冧滑鍦ㄥ悓涓€涓脊妗嗛噷銆侀兘鏄偅涓€灞忕殑涓诲姩浣溿€?*/
.trial-lead .btn-primary{padding:12px 20px;border-radius:10px;border:1px solid var(--ink);background:var(--ink);color:#fff;font:inherit;font-weight:700;cursor:pointer}
.trial-lead .btn-primary:hover{opacity:.9}
.trial-lead .btn-primary:disabled{opacity:.55;cursor:default}
#trial-error{margin:0;color:#dc2626}
#trial-error[hidden]{display:none}
#pptDefenseFields[hidden],#pptClassFields[hidden],#pptProjectFields[hidden],#pptAudienceField[hidden]{display:none!important}
.ppt-scene-options{margin-top:12px}.scene-toggle{display:flex!important;justify-content:flex-start!important;align-items:flex-start;gap:10px;padding:10px 2px;margin:0!important}.scene-toggle input{margin-top:3px}.scene-toggle span{display:flex;flex-direction:column;gap:2px}.scene-toggle b{font-size:12px}.scene-toggle small{font-size:10px;color:var(--muted);font-weight:400}
/* 銆屽凡缁忔湁鍏呭€肩爜浜嗐€嶉偅鏉″垎闅旂嚎銆傛枃瀛楀帇鍦ㄧ嚎涓婏紝涓よ竟鍚勪竴鏉℃í绾裤€?*/
.login-or{display:flex;align-items:center;gap:10px;margin:0;color:#71717a;font-size:12px}
.login-or::before,.login-or::after{content:"";flex:1;height:1px;background:#e4e4e7}

/* 鈹€鈹€鈹€ 鑱旂郴鍗?鈹€鈹€鈹€
   login-dialog 鎶?padding 鏀惧湪 .login-panel 涓娿€佽嚜宸辨槸 padding:0銆?
   鑱旂郴鍗℃病鏈?.login-panel 杩欏眰锛屾墍浠ュ唴杈硅窛瑕佽嚜宸辩粰 鈥斺€?涓嶇粰鐨勮瘽
   鍗＄墖鍐呭浼氳创鐫€鍦嗚杈圭紭銆?*/
/* **display 蹇呴』鍐欏湪 [open] 涓婏紝涓嶈兘鍐欏湪 .contact-dialog 涓娿€?*
   <dialog> 鍏崇潃鏃堕潬娴忚鍣ㄩ粯璁ゆ牱寮?dialog:not([open]){display:none} 闅愯棌锛?
   鑰岄偅鏉℃潈閲嶆渶浣?鈥斺€?鍦?.contact-dialog 涓婂啓 display:grid 浼氭妸瀹冨帇鎺夛紝
   浜庢槸杩欏紶鍗″鎵€鏈変汉涓€鐩存樉绀猴紝鑰屼笖鍥犱负娌¤蛋 showModal() 灏辨病鏈夊眳涓拰閬僵锛?
   琛ㄧ幇鏄€岄〉鑴氫笅闈㈡寕鐫€涓€寮犱簩缁寸爜銆嶃€?8-29 鐢ㄦ埛鎴浘鍙戠幇锛堜粬鏄鐞嗗憳锛?
   鍙槸鎭板ソ绗竴涓湅鍒帮紝璺熻韩浠芥棤鍏筹級銆?
   杩欐槸 .login-panel / .result-cta 涔嬪悗鍚屼竴涓牴鍥犵殑绗笁渚嬶紝
   鍖哄埆鏄?dialog 鐢?[open] 鑰屼笉鏄?[hidden]銆?*/
.contact-dialog{width:min(92vw,360px);padding:24px;border:0;border-radius:16px;box-shadow:0 24px 80px rgb(0 0 0 / 30%);text-align:center}
.contact-dialog[open]{display:grid;gap:14px;justify-items:center}
.contact-dialog::backdrop{background:rgb(0 0 0 / 55%);backdrop-filter:blur(3px)}
.contact-dialog h2,.contact-dialog p{margin:0}
#contact-msg{color:#52525b}
#contact-msg:empty{display:none}
/* 浜岀淮鐮佺粰鍥哄畾灏哄锛歩mg 鏈?width/height 灞炴€у厹鐫€锛屼絾 CSS 閲屼篃鍐欎竴閬嶏紝
   鍏嶅緱 max-width 涔嬬被鐨勯€氱敤瑙勫垯鎶婂畠缂╂垚涓€寮犳壂涓嶅嚭鏉ョ殑灏忓浘銆?*/
.contact-qr{width:200px;height:200px;border-radius:12px;background:#fff}
.contact-id{display:flex;align-items:center;justify-content:center;gap:8px;color:#71717a;font-size:13px}
/* 寰俊鍙锋寜閽€傚仛鎴愮湅寰楀嚭鍙偣鐨勬牱瀛愶紙铏氱嚎涓嬪垝绾?+ 鎵嬪瀷锛夛紝
   鍥犱负瀹冧笉闀垮緱鍍忔寜閽殑璇濓紝鎵嬫満鐢ㄦ埛涓嶄細鍘荤偣瀹冿紝鑰岀偣瀹冩槸绉诲姩绔敮涓€鐨勫嚭璺€?*/
.contact-copy{padding:6px 12px;border:1px dashed #a1a1aa;border-radius:8px;background:#fafafa;font:inherit;font-size:15px;font-weight:800;color:var(--ink);letter-spacing:.3px;cursor:pointer}
.contact-copy:hover{background:#f4f4f5;border-color:var(--ink)}
.contact-hint{color:#a1a1aa;font-size:11px;line-height:1.5}

@media(max-width:560px){
  /* 鎵嬫満涓婁簩缁寸爜灏忎竴鐐癸紝缁欎笅闈㈢殑寰俊鍙峰拰鎻愮ず鐣欏嚭灞忓箷 鈥斺€?杩欎竴灞忕殑閲嶇偣
     鍦ㄧЩ鍔ㄧ鏄偅涓彲澶嶅埗鐨勫井淇″彿锛屾壂鐮佹槸妗岄潰鐢ㄦ埛鐨勮矾銆?*/
  .contact-dialog{padding:20px}
  .contact-qr{width:160px;height:160px}
  /* 瑙︽懜鐩爣涓嶄綆浜?44px銆?*/
  .contact-copy{min-height:44px;padding:8px 14px}
}

/* 鈹€鈹€鈹€ 鎴愮灞忕殑鍔犲井淇″紩瀵硷紙璇曠敤鐢ㄦ埛鎵嶅嚭锛?鈹€鈹€鈹€
   涓嶅仛鎴愬脊妗嗭細姝ゅ埢鐢ㄦ埛鏈€鎯崇偣鐨勬槸鍒氬嚭鐜扮殑涓嬭浇鎸夐挳锛屽脊妗嗕細鎸′綇瀹冦€?
   搴曡壊鐢ㄦ祬缁胯€屼笉鏄伆锛岃窡 .result-cta-main 鐨勬繁缁垮懠搴旓紝璁╄繖鍧楃湅璧锋潵
   鏄偅鏉″姩绾跨殑寤朵几锛岃€屼笉鏄竴鏉＄郴缁熸彁绀恒€?*/
.result-invite{display:flex;align-items:center;gap:16px;margin:14px 17px 0;padding:14px 16px;border:1px solid rgba(31,95,79,.22);border-radius:14px;background:rgba(31,95,79,.06)}
.result-invite[hidden]{display:none}
.result-invite-text{display:grid;gap:4px;flex:1;min-width:0}
.result-invite-text strong{font-size:14px;color:var(--ink)}
.result-invite-text span{font-size:12px;line-height:1.6;color:#52525b}
/* 浜岀淮鐮佷笉璁歌 flex 鍘嬫墎锛歠lex-shrink:0銆傜埗瀹瑰櫒鏄?flex锛屾枃瀛楅偅鍒?
   涓€闀垮氨浼氭潵鎶簩缁寸爜鐨勫搴︼紝鑰屾壂涓嶅嚭鏉ョ殑浜岀淮鐮佺瓑浜庢病鏈夈€?*/
.result-invite-qr{flex-shrink:0;width:120px;height:120px;border-radius:10px;background:#fff}
/* 鍐呭祵閭ｉ寰俊鍙锋寜閽瘮寮规閲岄偅棰楀皬涓€鍙凤細杩欓噷鏄绾у姩绾匡紙涓诲姩绾挎槸涓嬭浇锛夛紝
   鑰屼笖瀹冩尐鐫€ 12px 鐨勮鏄庢枃瀛楋紝鐢?15px 浼氭樉寰楁姠銆?*/
.result-invite .contact-copy{margin-top:2px;padding:5px 10px;font-size:14px}

@media(max-width:560px){
  /* 鎵嬫満涓婄珫鎺掞細妯帓浼氭妸浜岀淮鐮佸拰鏂囧瓧鍚勬尋鎴愪竴鍗婏紝涓や釜閮戒笉濂界敤銆?
     浜岀淮鐮佹斁鍓嶉潰 鈥斺€?绔栨帓鏃跺畠鏄繖鍧楃殑瑙嗚閿氱偣銆?*/
  .result-invite{flex-direction:column;align-items:flex-start;gap:12px;margin:12px 14px 0}
  .result-invite-qr{width:140px;height:140px;align-self:center;order:-1}
}
.card-sqlbot{padding:0;background:url("haohan-shujin-v2.png") center/cover no-repeat;border-color:transparent}.card-sqlbot:hover{border-color:transparent}
/* 数据资产门户卡（2026-09-19 收编进申请制）：没有现成截图素材，用深色渐变
   与全站深色科技风对齐；文字直接铺在卡面上，不再套默认排版。 */
.card-portal{padding:0;background:linear-gradient(135deg,#101b3c 0%,#1b2f66 55%,#3b4fa8 100%);border-color:transparent;color:#eef2ff}
.card-portal:hover{border-color:transparent}
.card-portal .card-top .app-icon{background:rgba(255,255,255,.14);color:#eef2ff}
.card-portal .card-top .status{background:rgba(255,255,255,.14);color:#c9d6ff}
.card-portal h3{color:#fff}
.card-portal p{color:#c3cdf0}
.card-portal .card-action{color:#fff}
.card-portal .card-action b{color:#9db4ff}

/* == demo apply panel (2026-09-18) ============================= */
.login-panel select{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid #d4d4d8;border-radius:10px;font:inherit;background:#fff}
#apply-error{color:#dc2626}
.apply-privacy{font-size:12px;color:#71717a;line-height:1.6}
.apply-privacy a{color:#2563eb;text-decoration:none}
.apply-privacy a:hover{text-decoration:underline}
.cred-rows{display:grid;gap:8px;padding:14px 16px;background:#f4f4f5;border-radius:10px}
.cred-rows p{margin:0;font-size:14px}
.cred-rows b{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:15px;user-select:all}
