:root{font-family:"Noto Sans SC","Microsoft YaHei",system-ui,sans-serif;color:#132324;background:#e8eeea;letter-spacing:0}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.brand-mark{display:inline-block;width:18px;height:18px;background:#dfbe7c;border-radius:2px;transform:rotate(45deg);position:relative;flex:none}
.brand-mark:after{content:"";position:absolute;width:7px;height:7px;background:#0e2629;top:5.5px;left:5.5px;border-radius:1px}
.icon-button,.quiet-button,.text-button{border:0;background:transparent;color:inherit}
.icon-button{display:grid;place-items:center;width:36px;height:36px;font-size:24px;line-height:1;border-radius:4px}
.icon-button:hover,.quiet-button:hover,.text-button:hover{background:rgba(27,72,67,.1)}
.primary-button,.secondary-button{border-radius:4px;padding:10px 16px;border:1px solid #12665a;font-size:13px;font-weight:700;white-space:nowrap}
.primary-button{color:white;background:#12665a}
.primary-button:hover{background:#0d5148}
.secondary-button{color:#135b51;background:#e6f0ec}
.secondary-button:hover{background:#d8e9e3}
.quiet-button{padding:9px 10px;border-radius:4px;font-size:13px;white-space:nowrap}
.reader-body{background:#091b1e;color:#f6f8f6}
.reader-shell{min-height:100dvh;display:flex;flex-direction:column}
.reader-topbar{height:64px;padding:0 max(18px,calc((100vw - 900px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #25423f;background:#0e2528;position:relative;z-index:2}
.reader-brand{display:flex;align-items:center;gap:13px;font-size:18px;font-weight:700}
.reader-brand small{font-size:12px;color:#a6bab5;font-weight:500;margin-left:12px}
.reader-menu{color:#d6e6e0}
.reader-workspace{display:flex;justify-content:center;align-items:center;gap:32px;flex:1;padding:24px 20px 14px;min-height:0}
.reader-content{width:min(720px,calc(100vw - 136px));flex:none}
.reader-page-wrap{width:100%;box-shadow:0 22px 70px rgba(0,0,0,.36)}
.reader-page{width:100%;aspect-ratio:9/16;overflow:hidden;position:relative;background:#0d2023;touch-action:pan-y}
.reader-page-wrap.fit-height{width:min(720px,calc((100dvh - 160px)*9/16),calc(100vw - 136px))}
.reader-details{width:100%;min-height:calc(100dvh - 166px);padding:36px 38px 54px;background:#f5f7f3;color:#17302d;box-shadow:0 22px 70px rgba(0,0,0,.24)}
.reader-details .detail-kicker{font-size:13px;font-weight:700;color:#a26b32;margin:0 0 22px}
.reader-details h1{font-size:34px;line-height:1.34;margin:0 0 28px;color:#11332f;overflow-wrap:anywhere}
.reader-details p{font-size:19px;line-height:1.7;margin:0;padding:14px 0;border-top:1px solid #d7e2d9;white-space:pre-wrap;overflow-wrap:anywhere}
.reader-details p.detail-emphasis{font-size:23px;line-height:1.46;font-weight:700;color:#16594f}
.slide-artboard{position:absolute;left:0;top:0;width:720px;height:1280px;transform-origin:top left;overflow:hidden}
.slide-element{position:absolute;white-space:pre-wrap;word-break:break-word;letter-spacing:0}
.slide-element[data-type="image"]{overflow:hidden}
.slide-element img{width:100%;height:100%;display:block}
.slide-element[data-type="text"]{line-height:1.15}
.reader-arrow{width:52px;height:74px;border:1px solid #34514f;border-radius:4px;background:#153034;color:#dce9e6;font-size:44px;line-height:1;flex:none}
.reader-arrow:hover{background:#245047}
.reader-arrow:disabled{opacity:.25;cursor:default}
.reader-bottom{height:68px;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:0 max(22px,calc((100vw - 900px)/2));border-top:1px solid #25423f;background:#0e2528;position:sticky;bottom:0;z-index:2}
.reader-progress{display:flex;align-items:center;gap:16px;font-size:13px;font-weight:700;letter-spacing:0;white-space:nowrap;color:#e5c991}
.progress-track{width:min(250px,24vw);height:3px;background:#365552;overflow:hidden}
.progress-track span{display:block;height:100%;width:0;background:#e4c78f;transition:width .25s ease}
.reader-bottom-actions{display:flex;gap:12px;align-items:center;flex:none}
.reader-bottom-actions button{white-space:nowrap;flex:none}
.reader-bottom .text-button{font-size:13px;color:#c4d8d3;padding:8px}
.reader-mobile-arrow{display:none}
.contents-panel{position:fixed;right:0;top:0;bottom:0;width:min(400px,92vw);z-index:6;background:#f2f6f3;color:#18322f;transform:translateX(101%);transition:transform .25s ease;display:flex;flex-direction:column;box-shadow:-16px 0 38px rgba(0,0,0,.26)}
.contents-panel.open{transform:translateX(0)}
.contents-head{display:flex;justify-content:space-between;align-items:flex-start;padding:30px 26px 17px;border-bottom:1px solid #c7d8d1}
.contents-head small,.sidebar-title small{font-size:10px;color:#aa7b35;font-weight:800;letter-spacing:1px}
.contents-head h2,.sidebar-title h2{font-size:24px;margin:6px 0 0;letter-spacing:0}
.contents-list{overflow:auto;padding:12px 18px 30px}
.contents-item{display:flex;gap:18px;text-align:left;width:100%;padding:13px 10px;border:0;border-bottom:1px solid #d5dfd9;color:#18322f;background:transparent;align-items:baseline}
.contents-item:hover,.contents-item.active{background:#dcebe5}
.contents-item span{color:#bd4840;font-weight:800;font-size:15px;min-width:26px}
.contents-item strong{font-size:14px;line-height:1.4;font-weight:600}
.panel-scrim{position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:5;display:none}
.panel-scrim.open{display:block}

.admin-body{height:100dvh;overflow:hidden;background:#eef2ef;color:#18302e}
.auth-screen{position:fixed;inset:0;z-index:20;background:#11272a;display:grid;place-items:center;padding:22px}
.auth-card{width:min(420px,100%);background:#f5f7f4;padding:38px;border:1px solid #b5cbc1;border-radius:6px;box-shadow:0 30px 90px rgba(0,0,0,.2)}
.auth-mark{margin:7px 0 27px 9px;width:28px;height:28px}.auth-mark:after{width:11px;height:11px;top:8.5px;left:8.5px}
.auth-kicker{font-size:11px;color:#a27035;font-weight:800;letter-spacing:1.4px;margin:0 0 10px}
.auth-card h1{font-size:29px;margin:0 0 9px}.auth-card p:not(.auth-kicker):not(.form-error){color:#647773;font-size:14px;margin:0 0 26px}
.auth-card label{display:block;font-size:13px;font-weight:700;margin-bottom:8px}
.auth-card input{height:44px;width:100%;border:1px solid #b8c9c0;border-radius:3px;background:white;padding:0 12px;outline:none}
.auth-card input:focus{border-color:#166b5e;box-shadow:0 0 0 3px #c9e5dc}
.auth-card .primary-button{display:block;width:100%;margin-top:18px;height:44px;font-size:14px}
.form-error{font-size:12px;color:#c13c37;margin:14px 0 0;min-height:18px}
.editor-app{height:100dvh;display:flex;flex-direction:column}
.studio-topbar{height:64px;flex:none;display:flex;align-items:center;gap:24px;justify-content:space-between;padding:0 20px;background:#fff;border-bottom:1px solid #cfdbd4}
.studio-identity{display:flex;align-items:center;gap:15px;min-width:225px}
.studio-identity strong,.studio-identity small{display:block}.studio-identity strong{font-size:16px}.studio-identity small{color:#73847d;font-size:11px;margin-top:1px}
.studio-current{display:flex;align-items:center;gap:8px;font-size:12px;color:#61766e;min-width:110px}
.status-dot{width:7px;height:7px;background:#4f9b76;border-radius:50%}.status-dot.dirty{background:#d99647}.status-dot.error{background:#c94743}
.studio-actions{display:flex;align-items:center;gap:5px}
.studio-actions .quiet-button:first-child,.studio-actions .quiet-button:nth-child(2){font-size:23px;padding:3px 9px;line-height:1}
.studio-layout{display:grid;grid-template-columns:246px minmax(390px,1fr) 320px;min-height:0;flex:1}
.slides-sidebar{border-right:1px solid #cbd7d0;background:#f9fbf9;display:flex;flex-direction:column;min-height:0}
.sidebar-title{display:flex;justify-content:space-between;align-items:center;padding:22px 16px 13px}
.sidebar-title h2{font-size:20px}.sidebar-title .icon-button{color:#135d53}
.slide-search{height:36px;margin:0 15px 13px;padding:0 12px;border:1px solid #cbd9d1;border-radius:3px;background:white;font-size:12px;outline:none}
.slide-search:focus{border-color:#18806e}
.slide-list{overflow-y:auto;min-height:0;padding:3px 9px 20px;flex:1}
.slide-item{display:flex;gap:11px;width:100%;text-align:left;padding:9px 8px;margin-bottom:5px;border:1px solid transparent;border-radius:4px;background:transparent;color:#233c37;align-items:flex-start}
.slide-item:hover{background:#edf4ef}.slide-item.active{background:#dfebe5;border-color:#a7c7b9}.slide-item.dragging{opacity:.42}
.slide-thumb{width:45px;height:80px;background:#183b38;flex:none;position:relative;overflow:hidden;border:1px solid #bdcdc4}
.slide-thumb img{width:100%;height:100%;object-fit:cover;display:block;opacity:.74}
.slide-thumb span{position:absolute;left:4px;right:4px;top:23px;color:#fff;font-size:8px;font-weight:800;line-height:1.25;text-shadow:0 1px 3px #000}
.slide-item-copy{min-width:0;padding-top:2px}.slide-item-copy small{display:block;font-size:10px;color:#8b9a93;margin-bottom:5px}.slide-item-copy strong{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;line-height:1.4}
.sidebar-foot{height:43px;padding:0 15px;border-top:1px solid #dce5df;display:flex;align-items:center;justify-content:space-between;color:#7a8d84;font-size:11px}
.sidebar-foot .quiet-button{font-size:11px;color:#618078}
.studio-center{min-width:0;min-height:0;display:flex;flex-direction:column;background:#e8eeea}
.canvas-toolbar{height:55px;flex:none;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 22px;border-bottom:1px solid #cfdbd3;background:#f7faf7}
.canvas-title{min-width:150px;white-space:nowrap}.canvas-title strong{display:block;font-size:13px}.canvas-title span{display:block;font-size:10px;color:#7d8d86}
.viewport-segment{display:flex;padding:2px;border:1px solid #c7d8ce;border-radius:4px;background:#e8f0ea;gap:2px}
.viewport-segment button{border:0;border-radius:2px;background:transparent;padding:5px 10px;font-size:11px;color:#577069}
.viewport-segment button.active{background:white;color:#105b51;box-shadow:0 1px 3px #9aad9d}
.canvas-scroll{min-height:0;flex:1;overflow:auto;display:flex;justify-content:center;align-items:flex-start;padding:30px 18px 50px}
.phone-outline{position:relative;width:390px;background:#101d20;border:9px solid #1b2b2e;border-radius:27px;padding:18px 5px 12px;box-shadow:0 17px 40px rgba(21,49,43,.2);height:max-content}
.phone-notch{position:absolute;width:66px;height:12px;border-radius:0 0 9px 9px;background:#1b2b2e;top:0;left:calc(50% - 33px);z-index:2}
.editor-page{width:100%;aspect-ratio:9/16;position:relative;overflow:hidden;background:#0d2023;box-shadow:0 0 0 1px #344844}
.editor-page .slide-element{cursor:move}
.editor-page .slide-element:hover{outline:2px solid rgba(252,221,156,.55);outline-offset:1px}
.editor-page .slide-element.selected{outline:3px solid #f3c468;outline-offset:2px}
.resize-handle{position:absolute;width:20px;height:20px;border:3px solid #fff;background:#dfac46;border-radius:50%;cursor:nwse-resize;z-index:1001;box-shadow:0 1px 5px #0008}
.canvas-footer{height:35px;flex:none;padding:0 20px;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#718980;background:#f7faf7;border-top:1px solid #cfdbd3}
.canvas-footer .layout-error{color:#b33c36;font-weight:700}
.inspector{min-height:0;background:#fff;border-left:1px solid #cbd7d0;display:flex;flex-direction:column}
.inspector-tabs{height:54px;display:flex;border-bottom:1px solid #dce5df;flex:none;padding:0 12px;gap:7px}
.inspector-tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:0 13px;font-size:13px;font-weight:700;color:#74857e}
.inspector-tabs button.active{color:#125f55;border-bottom-color:#136a5b}
.inspector-content{padding:20px;min-height:0;overflow:auto}
.inspector-header{font-size:15px;font-weight:800;margin:0 0 6px}.inspector-sub{font-size:11px;color:#82918a;margin:0 0 20px;line-height:1.5}
.field{display:block;margin:0 0 16px}.field-label{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700;color:#5c756c;margin-bottom:6px}
.field input:not([type="color"]),.field textarea,.field select{display:block;width:100%;border:1px solid #c7d8cf;border-radius:3px;background:#f9fbf9;color:#18302e;padding:8px 9px;font-size:12px;outline:none}
.field input:not([type="color"]):focus,.field textarea:focus,.field select:focus{border-color:#16806c;box-shadow:0 0 0 2px #d7ebe3}
.field textarea{resize:vertical;min-height:102px;line-height:1.5}
.field input[type="color"]{width:42px;height:31px;padding:2px;border:1px solid #c7d8cf;border-radius:3px;background:white}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.field-color{display:flex;align-items:center;gap:10px}.field-color input[type="text"]{flex:1}
.inspector-divider{height:1px;background:#e0e9e2;margin:21px 0}
.inspector-actions{display:flex;gap:7px;flex-wrap:wrap}.inspector-actions button{border:1px solid #c6d8ce;background:#f4f9f5;color:#24594e;padding:7px 9px;border-radius:3px;font-size:11px}
.inspector-actions button:hover{background:#e3f0e8}.inspector-actions .danger{color:#b43e36;background:#fff9f8;border-color:#e8c9c7}
.layer-list{display:flex;flex-direction:column;gap:5px}.layer-item{border:1px solid #d5e1d9;background:#fbfcfa;border-radius:3px;display:flex;align-items:center;gap:7px;padding:7px 6px;font-size:11px}
.layer-item.active{background:#e0eee6;border-color:#8cbea7}.layer-item button{border:0;background:transparent;color:#44665a;font-size:11px;padding:2px}.layer-item .layer-name{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.page-note{font-size:12px;color:#6c8278;line-height:1.6;background:#f4f8f5;padding:11px;border-left:3px solid #d8b978}
.asset-uploader{border:1px dashed #a9c3b4;background:#f4faf6;padding:14px;text-align:center;border-radius:3px;font-size:12px;color:#4d7568;cursor:pointer}
.asset-uploader input{display:none}
.slide-page-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px}
.slide-page-actions button{border:1px solid #ceddd1;background:#f6faf6;padding:8px;border-radius:3px;font-size:11px;color:#2d6657}
.preview-overlay{position:fixed;inset:0;z-index:15;background:#0a1e21;display:flex;flex-direction:column;align-items:center;color:#eaf3ef;overflow:auto}
.preview-toolbar{width:min(720px,100%);height:54px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;font-size:13px}
.preview-page{width:min(100vw,720px);aspect-ratio:9/16;background:#0d2023;position:relative;overflow:hidden}
.preview-navigation{height:58px;display:flex;gap:22px;align-items:center}.preview-navigation button{background:#254842;color:white;border:1px solid #4b6c60;padding:7px 12px;border-radius:3px;font-size:12px}
.toast{position:fixed;z-index:30;bottom:20px;left:50%;transform:translate(-50%,25px);opacity:0;pointer-events:none;background:#183f37;color:white;padding:10px 15px;border-radius:4px;font-size:12px;box-shadow:0 9px 28px #1228;transition:.2s}
.toast.visible{opacity:1;transform:translate(-50%,0)}
@media(max-width:1050px){.studio-layout{grid-template-columns:190px minmax(340px,1fr) 285px}.studio-identity{min-width:165px}.studio-current{display:none}.studio-topbar{gap:8px;padding:0 12px}.studio-actions{gap:1px}.studio-actions button{padding-left:8px;padding-right:8px}}
@media(max-width:760px){.reader-topbar{height:48px;padding:0 13px}.reader-brand{font-size:14px;gap:9px}.reader-brand small{display:none}.reader-workspace{padding:0;display:block}.reader-content{width:100%;max-width:720px;margin:auto}.reader-page-wrap{width:100%;max-width:720px;margin:auto;box-shadow:none}.reader-page-wrap.fit-height{width:min(100%,calc((100dvh - 128px)*9/16))}.reader-details{min-height:calc(100dvh - 108px);padding:26px 24px 46px;box-shadow:none}.reader-details h1{font-size:29px}.reader-details p{font-size:17px}.reader-details p.detail-emphasis{font-size:21px}.reader-arrow{display:none}.reader-mobile-arrow{display:grid;place-items:center;width:32px;height:36px;border:1px solid #3e6560;border-radius:4px;background:#173b3a;color:#e8f5f0;font-size:27px;line-height:1}.reader-mobile-arrow:disabled{opacity:.3}.reader-bottom{height:60px;padding:0 10px;gap:5px}.progress-track{display:none}.reader-progress{font-size:12px}.reader-bottom .text-button{font-size:11px;padding:7px 4px}.reader-bottom-actions{gap:2px}.reader-bottom #toggleFit{display:none}.admin-body{overflow:auto}.studio-topbar{height:auto;min-height:54px;flex-wrap:wrap}.studio-layout{display:flex;flex-direction:column;min-height:calc(100dvh - 54px)}.slides-sidebar{height:160px;min-height:160px;border-right:0;border-bottom:1px solid #cbd7d0}.sidebar-title{padding:8px 12px}.sidebar-title h2{font-size:14px;margin:0}.sidebar-title small,.slide-search,.sidebar-foot{display:none}.slide-list{display:flex;overflow-x:auto;overflow-y:hidden;padding:2px 8px}.slide-item{min-width:130px;width:130px}.slide-thumb{width:33px;height:58px}.studio-center{min-height:580px}.canvas-scroll{padding:18px}.inspector{min-height:360px;border-left:0;border-top:1px solid #cbd7d0}.studio-actions .quiet-button:nth-child(3){display:none}}
