*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,sans-serif;color:#1c302e;background:#edf1f2}button,input,select,textarea{font:inherit}button,.file{border:1px solid #d6dedd;background:#fff;color:#243d39;padding:9px 13px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px}button:hover,.file:hover{background:#e6efec}button:disabled{opacity:.4;cursor:not-allowed}button.active,.primary{background:#173d37;color:#fff;border-color:#173d37}.top{height:76px;background:#fff;border-bottom:1px solid #d8dfdd;display:flex;align-items:center;gap:20px;padding:0 28px}.brand{font-weight:850;font-size:25px;letter-spacing:-1px}.brand span{color:#468879}.sub{font-size:13px;color:#61736f}.grow{flex:1}.workspace{display:grid;grid-template-columns:235px minmax(0,1fr);height:calc(100dvh - 76px)}aside{background:#fafcfb;border-right:1px solid #d8dfdd;padding:20px;overflow:auto}h2{font-size:12px;text-transform:uppercase;letter-spacing:1.5px;color:#687c77;margin:22px 0 12px}.tools{display:grid;gap:7px}.tools button{justify-content:flex-start;border-color:transparent;background:transparent}.tools button.active{background:#dfece6;color:#173d37;font-weight:650}.tools button b{font-size:19px;width:25px;text-align:center}main{min-width:0;display:flex;flex-direction:column;overflow:hidden}.bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px 20px;background:#f9fbfa;border-bottom:1px solid #d8dfdd}.stage{flex:1;overflow:auto;padding:30px;position:relative}.empty{max-width:670px;margin:6vh auto;text-align:center;border:2px dashed #b7c9c3;border-radius:20px;padding:50px 25px;background:#f7faf9}.empty .mark{font-size:46px;color:#498477}.empty h1{font-size:30px;letter-spacing:-1px;margin:16px 0 6px}.empty p{color:#657a74}.empty .file{margin:15px;background:#173d37;color:#fff;padding:13px 24px}.tips{display:flex;justify-content:center;gap:24px;margin-top:30px;font-size:13px;color:#687c77}.paper{position:relative;margin:0 auto;box-shadow:0 6px 25px #1c302e22;background:#fff;line-height:0}.paper canvas{display:block}.paper svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none}.footer{padding:9px 20px;background:#f9fbfa;font-size:13px;display:flex;gap:15px;border-top:1px solid #d8dfdd}.pages{display:flex;gap:7px;overflow:auto;padding:8px 20px;background:#e5ebe8;max-height:130px}.thumb{flex-direction:column;min-width:64px;padding:6px;font-size:12px}.thumb canvas{max-width:46px;max-height:63px}.options{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 20px;background:#fff}input[type=text],input[type=number],textarea,select{border:1px solid #c6d3ce;border-radius:6px;padding:7px;max-width:100%}input[type=number]{width:66px}input[type=color]{width:34px;height:34px;border:0;background:none}#text{width:220px}.hidden,[hidden]{display:none!important}.status{font-size:12px;border:1px solid #d5e2dc;background:#eff5f1;border-radius:20px;padding:5px 10px}.note{font-size:12px;color:#647a73;margin-top:24px}dialog{border:0;border-radius:16px;box-shadow:0 20px 80px #0004;max-width:600px;width:90%;padding:28px}dialog::backdrop{background:#14282277}dialog h2{font-size:19px;color:#173d37;text-transform:none;letter-spacing:0;margin-top:0}.field{display:grid;gap:6px;margin:15px 0}#toast{position:fixed;bottom:35px;left:50%;transform:translate(-50%);background:#173d37;color:#fff;padding:12px 20px;border-radius:10px;z-index:10;max-width:90%}#searchResults button{display:block;margin:8px 0;text-align:left;width:100%}button:focus-visible,.file:focus-within{outline:3px solid #ce922b;outline-offset:2px}.busy{pointer-events:none;opacity:.6}@media(max-width:760px){.top{height:auto;min-height:68px;padding:12px;gap:10px;flex-wrap:wrap}.top .sub{display:none}.top button{padding:8px}.workspace{height:calc(100dvh - 92px);display:flex;flex-direction:column}aside{padding:8px;border-right:0;flex-shrink:0;overflow:auto}aside h2,aside .note{display:none}.tools{display:flex;width:max-content}.tools button{padding:8px;font-size:13px}.tools button b{font-size:16px;width:auto}main{flex:1}.stage{padding:15px}.bar,.options{padding:8px;gap:5px}.bar button{padding:6px 9px;font-size:13px}.empty{margin:15px auto;padding:25px 15px}.empty h1{font-size:25px}.tips{gap:10px;flex-wrap:wrap}.footer{font-size:12px;padding:6px 10px}.status{font-size:11px}.pages{padding:5px 10px}#text{width:150px}}#app{height:100dvh;display:flex;flex-direction:column}.top{flex-shrink:0}.workspace{flex:1;min-height:0;height:auto}.footer #filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:45%}@media(max-width:760px){.top .status{margin-left:auto}.top .grow{display:none}.top .brand{margin-right:auto}.top #share,.top #save,.top #export{font-size:13px;padding:7px 10px}.workspace{height:auto}}.landing{min-height:100dvh;background:radial-gradient(circle at 75% 10%,#d7e9e3 0,#edf1f2 42%,#edf1f2);color:#173d37;padding:clamp(22px,5vw,72px)}.landing-inner{max-width:1060px;margin:0 auto}.landing-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:clamp(50px,9vh,110px)}.landing-head .brand{font-size:30px}.landing #authPanel{max-width:510px;background:#fff;border:1px solid #d3dfdb;border-radius:18px;box-shadow:0 20px 60px #173d3712;padding:clamp(24px,5vw,50px)}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:800;color:#568276;margin:0 0 12px}.landing h1{font-size:clamp(30px,5vw,53px);letter-spacing:-2px;line-height:1.04;margin:0 0 15px}.landing .lead{color:#61756f;font-size:17px;max-width:620px;margin:0 0 26px}.landing .field{margin:14px 0}.landing .field input{width:100%;border:1px solid #c6d3ce;border-radius:8px;padding:11px 12px;background:#fbfdfc}.auth-submit{width:100%;margin-top:8px;padding:12px}.link-button{border:0;background:transparent;color:#317769;padding:12px 0;text-decoration:underline}.auth-note{font-size:13px;color:#71827d;margin:9px 0 0}.library-top{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;margin-bottom:30px}.library-top h1{font-size:clamp(30px,5vw,48px)}.library-top button{margin-top:8px}.library-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid #d3dfdb;padding:15px;border-radius:12px}.file-list{display:grid;gap:10px;margin-top:20px}.file-card{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #d3dfdb;border-radius:12px;padding:14px 16px;box-shadow:0 7px 18px #173d3708}.file-icon{display:grid;place-items:center;background:#e4efeb;color:#317769;font-weight:800;border-radius:8px;width:46px;height:52px;font-size:11px}.file-card-main{display:grid;gap:3px;min-width:0;flex:1}.file-card-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-card-main span{font-size:12px;color:#71827d}.file-card .delete-server-file{font-size:20px;padding:5px 10px}.empty-library{text-align:center;padding:65px 20px;border:1px dashed #b7c9c3;border-radius:16px;background:#f8fbfa;color:#687c77}.empty-library h2{color:#173d37;text-transform:none;letter-spacing:0;font-size:22px;margin:12px 0 4px}.empty-mark{font-size:40px;color:#498477}@media(max-width:760px){.landing{padding:20px}.landing-head{margin-bottom:45px}.landing #authPanel{padding:25px 20px}.library-top{display:block}.library-top button{margin-top:0}.file-card{padding:10px}.file-card .open-server-file{padding:8px}.file-card .delete-server-file{padding:5px 8px}.landing .lead{font-size:15px}}.modify-target{fill:#4b998933;stroke:#317769;stroke-width:1.5;stroke-dasharray:4 3;cursor:pointer;pointer-events:all}.modify-target:hover{fill:#ce922b55;stroke:#ce922b}.modify-coords{display:grid;grid-template-columns:1fr 1fr;gap:8px}.modify-coords .field{margin:4px 0}@media print{body{background:#fff}.landing,.top,aside,.bar,.options,.pages,.footer,#toast,dialog{display:none!important}#editorShell,main,.stage{display:block!important;height:auto!important;overflow:visible!important;padding:0!important}.paper{box-shadow:none!important;margin:0!important;break-after:page}.paper svg{display:none!important}}
