:root{--violet-50: #f6f0ff;--violet-100: #ede0ff;--violet-200: #d9beff;--violet: #8b3dff;--violet-dark: #7429e6;--violet-deep: #5f1cc4;--violet-soft: rgba(139, 61, 255, .1);--violet-glow: rgba(139, 61, 255, .22);--blue: #4f7cff;--teal: #2dd4bf;--brand-gradient: linear-gradient(135deg, var(--violet), var(--blue));--ocean-gradient: linear-gradient(108deg, #3c1690 0%, #6023d8 24%, #4f46e5 50%, #0e93e9 78%, #2ec9c0 100%);--shadow-ocean: 0 2px 6px rgba(60, 22, 144, .28), 0 10px 30px rgba(79, 70, 229, .3), 0 6px 24px rgba(14, 147, 233, .18);--ink: #0d1216;--ink-2: #40515f;--ink-3: #5c6470;--ink-4: #8b93a1;--line: #e4e7eb;--line-soft: #edf0f3;--bg-app: #ffffff;--bg-workspace: #eef0f3;--bg-hover: #f2f4f6;--bg-press: #e7eaee;--glass: rgba(255, 255, 255, .86);--radius-sm: 6px;--radius: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .05);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06), 0 2px 8px rgba(15, 23, 42, .05);--shadow-pop: 0 0 0 1px rgba(15, 23, 42, .04), 0 2px 6px rgba(15, 23, 42, .06), 0 12px 32px rgba(15, 23, 42, .14);--shadow-page: 0 1px 2px rgba(15, 23, 42, .07), 0 4px 12px rgba(15, 23, 42, .06), 0 16px 40px rgba(15, 23, 42, .07);--shadow-brand: 0 2px 6px rgba(139, 61, 255, .35);--ease: cubic-bezier(.25, .1, .25, 1);--t-fast: .15s var(--ease);--t-med: .2s var(--ease);--ring: 0 0 0 2px var(--bg-app), 0 0 0 4px var(--violet-glow)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Inter,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);font-size:14px;overflow:hidden;background:var(--bg-app);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;padding:0}input,select{font:inherit;color:inherit}:focus{outline:none}:focus-visible{outline:none;box-shadow:var(--ring)}::selection{background:var(--violet-200);color:var(--ink)}.app{display:flex;flex-direction:column;height:100%;background:radial-gradient(1200px 500px at 50% -10%,rgba(139,61,255,.05),transparent 60%),radial-gradient(1000px 600px at 100% 110%,rgba(46,201,192,.05),transparent 55%),var(--bg-workspace)}.app-body{display:flex;flex:1;min-height:0}.topbar{height:56px;display:flex;align-items:center;gap:10px;padding:0 14px 0 16px;background:var(--ocean-gradient);box-shadow:inset 0 1px #ffffff2e,0 1px 2px #3c16902e,0 6px 24px #4f46e538;color:#fff;z-index:30}.topbar .tb-btn,.topbar .icon-btn{color:#ffffffd1}.topbar .tb-btn:hover,.topbar .icon-btn:hover{background:#ffffff29;color:#fff}.topbar .tb-btn:active,.topbar .icon-btn:active{background:#ffffff3d}.topbar .icon-btn:disabled{color:#ffffffd1;background:none}.topbar .tb-btn.on,.topbar .icon-btn.on{background:#fff3;color:#fff}.topbar .tb-btn.danger{color:#ffd6dd}.topbar .tb-btn.danger:hover{background:#ffffff24;color:#fff}.topbar :focus-visible{box-shadow:0 0 0 2px transparent,0 0 0 3px #ffffff8c}.topbar-left,.topbar-right{display:flex;align-items:center;gap:6px}.topbar-center{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;min-width:0}.logo{display:flex;align-items:center;gap:9px;margin-right:4px}.logo-mark{width:32px;height:32px;border-radius:999px;background:#ffffff29;display:grid;place-items:center;box-shadow:inset 0 0 0 1px #ffffff52,inset 0 1px #ffffff40;transition:background var(--t-med),transform var(--t-med)}.logo:hover .logo-mark{background:#ffffff42;transform:translateY(-1px)}.logo-text{font-weight:700;font-size:16px;letter-spacing:-.35px;color:#fff}.topbar-sep{width:1px;height:24px;background:#ffffff47;margin:0 6px}.doc-name{border:1px solid transparent;border-radius:var(--radius);padding:7px 10px;font-weight:600;text-align:center;letter-spacing:-.1px;max-width:320px;width:40%;min-width:140px;background:transparent;outline:none;transition:border-color var(--t-fast),background var(--t-fast),box-shadow var(--t-fast)}.doc-name{color:#fff}.doc-name::selection{background:#ffffff59;color:#fff}.doc-name:hover{background:#ffffff1f}.doc-name:focus{border-color:#ffffff8c;background:#ffffff29;box-shadow:none}.doc-dims{color:#ffffffad;font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}.busy-pill{font-size:12px;font-weight:500;color:#fff;background:linear-gradient(110deg,#ffffff24 35%,#ffffff47,#ffffff24 65%);background-size:220% 100%;padding:6px 12px;border-radius:999px;white-space:nowrap;box-shadow:inset 0 0 0 1px #ffffff40;animation:pulse 1.2s ease-in-out infinite,shimmer 1.6s linear infinite}@keyframes pulse{50%{opacity:.7}}@keyframes shimmer{0%{background-position:120% 0}to{background-position:-100% 0}}.confirm-new{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#ffffffe0}.tb-btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 10px;border-radius:var(--radius);color:var(--ink-2);font-weight:500;text-decoration:none;white-space:nowrap;transition:background var(--t-fast),color var(--t-fast),transform var(--t-fast)}.tb-btn:hover{background:var(--bg-hover);color:var(--ink)}.tb-btn:active{background:var(--bg-press);transform:scale(.97)}.tb-btn.glyph{width:34px;padding:0;justify-content:center;font-size:15px}.tb-btn.on,.icon-btn.on{background:var(--violet-soft);color:var(--violet-dark)}.tb-btn.danger{color:#d7263d}.tb-btn.danger:hover{background:#d7263d14;color:#b91c30}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius);color:var(--ink-2);transition:background var(--t-fast),color var(--t-fast),transform var(--t-fast)}.icon-btn:hover{background:var(--bg-hover);color:var(--ink)}.icon-btn:active{background:var(--bg-press);transform:scale(.94)}.icon-btn:disabled{opacity:.35;cursor:default;background:none;transform:none}.icon-btn.small{width:26px;height:26px;border-radius:var(--radius-sm)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(180deg,var(--violet),var(--violet-dark));color:#fff;font-weight:600;letter-spacing:.1px;height:38px;padding:0 16px;border-radius:var(--radius);box-shadow:inset 0 1px #ffffff2e,0 1px 2px #5f1cc459;transition:background var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast)}.btn-primary:hover{background:linear-gradient(180deg,var(--violet-dark),var(--violet-deep));box-shadow:inset 0 1px #ffffff2e,0 3px 10px #5f1cc459}.btn-primary:active{transform:translateY(1px);box-shadow:inset 0 1px #ffffff1a}.btn-primary:disabled{opacity:.6;cursor:default;transform:none}.btn-primary.full{width:100%;margin-top:10px}.topbar .btn-primary{background:#fff;color:var(--violet-deep);border-radius:999px;box-shadow:0 1px 3px #170f3c40,0 4px 14px #170f3c2e}.topbar .btn-primary:hover{background:var(--violet-50);color:var(--violet-deep);box-shadow:0 2px 6px #170f3c4d,0 6px 18px #170f3c38}.topbar .btn-primary:active{transform:translateY(1px);box-shadow:0 1px 2px #170f3c40}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--bg-hover);color:var(--ink);font-weight:500;height:34px;padding:0 12px;border-radius:var(--radius);box-shadow:inset 0 0 0 1px var(--line-soft);transition:background var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast)}.btn-secondary:hover{background:var(--bg-press);box-shadow:inset 0 0 0 1px var(--line)}.btn-secondary:active{transform:scale(.98)}.btn-secondary.full{width:100%;margin-top:8px}.btn-secondary.waiting{outline:2px solid var(--violet)}.sidebar{display:flex;min-height:0;z-index:20;gap:12px;padding:8px 0 14px 14px}.rail{width:76px;border-radius:26px;background:var(--glass);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);box-shadow:inset 0 0 0 1px #fff9,var(--shadow-pop);display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:4px}.rail-item{width:64px;padding:9px 0 7px;border-radius:10px;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--ink-3);font-size:10.5px;font-weight:500;letter-spacing:.1px;transition:background var(--t-fast),color var(--t-fast),transform var(--t-fast)}.rail-item:hover{background:var(--bg-hover);color:var(--ink)}.rail-item:active{transform:scale(.96)}.rail-item.active{color:var(--violet-dark);background:var(--violet-soft);font-weight:600}.panel{width:320px;background:#fff;border-radius:24px;overflow:hidden;box-shadow:inset 0 0 0 1px #fff9,0 2px 6px #3c169014,0 12px 36px #4f46e524;position:relative;display:flex;flex-direction:column;min-height:0}.panel-close{position:absolute;top:12px;right:12px;z-index:2;width:30px;height:30px;border-radius:999px;background:#fff;color:var(--ink-4);box-shadow:inset 0 0 0 1px var(--line-soft),var(--shadow-sm)}.panel-close:hover{background:#fff;color:var(--violet-dark);box-shadow:inset 0 0 0 1px var(--violet-200),0 3px 10px #8b3dff2e}.panel-scroll{overflow-y:auto;padding:18px 16px 24px;flex:1}.panel-heading{font-size:11.5px;font-weight:600;color:var(--ink-3);margin:20px 0 8px;letter-spacing:.6px;text-transform:uppercase}.panel-heading:first-child{margin-top:0}.panel-title{font-weight:700;font-size:15px;letter-spacing:-.2px;margin-bottom:10px}.hint{font-size:12px;color:var(--ink-3);line-height:1.5;margin-top:10px}.size-form{display:flex;gap:6px;align-items:center}.size-form input{width:0;flex:1;height:36px;border:1px solid var(--line);border-radius:var(--radius);padding:0 8px;outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast)}.size-form input:focus{border-color:var(--violet);box-shadow:0 0 0 3px var(--violet-soft)}.size-form select{height:36px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;transition:border-color var(--t-fast)}.size-form select:hover{border-color:var(--ink-4)}.size-x{color:var(--ink-4)}.template-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.template-card{display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 8px;border-radius:10px;border:1px solid var(--line);background:#fff;transition:border-color var(--t-fast),box-shadow var(--t-med),transform var(--t-med)}.template-card:hover{border-color:var(--violet-200);box-shadow:0 4px 14px #8b3dff24;transform:translateY(-1px)}.template-card:active{transform:translateY(0);box-shadow:0 2px 6px #8b3dff1f}.template-thumb{display:block;border-radius:var(--radius-sm);width:100%}.template-name{font-size:12px;font-weight:600;text-align:center;letter-spacing:-.1px}.template-dims{font-size:11px;color:var(--ink-4);font-variant-numeric:tabular-nums}.shape-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.shape-cell{aspect-ratio:1;border-radius:10px;padding:16px;background:var(--bg-hover);box-shadow:inset 0 0 0 1px var(--line-soft);display:grid;place-items:center;transition:background var(--t-fast),transform var(--t-fast),box-shadow var(--t-fast)}.shape-cell:hover{background:#fff;transform:scale(1.05);box-shadow:inset 0 0 0 1px var(--violet-200),0 3px 10px #8b3dff1f}.shape-cell:active{transform:scale(1)}.shape-cell svg{width:100%;height:100%}.line-list{display:flex;flex-direction:column;gap:8px}.line-cell{padding:14px 12px;border-radius:10px;background:var(--bg-hover);box-shadow:inset 0 0 0 1px var(--line-soft);transition:background var(--t-fast),box-shadow var(--t-fast)}.line-cell:hover{background:#fff;box-shadow:inset 0 0 0 1px var(--violet-200),0 3px 10px #8b3dff1f}.line-cell svg{width:100%;height:12px;display:block}.text-preset{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:10px;background:#fff;transition:border-color var(--t-fast),box-shadow var(--t-med),transform var(--t-med)}.text-preset:hover{border-color:var(--violet-200);box-shadow:0 4px 14px #8b3dff24;transform:translateY(-1px)}.text-preset:active{transform:translateY(0)}.text-preset.heading{font-size:24px;font-weight:700;letter-spacing:-.5px}.text-preset.subheading{font-size:17px;font-weight:600;letter-spacing:-.2px}.text-preset.body{font-size:13px;color:var(--ink-2)}.uploads-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.upload-card{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;transition:border-color var(--t-fast),box-shadow var(--t-med)}.upload-card:hover{border-color:var(--violet-200);box-shadow:0 4px 14px #0f172a14}.upload-thumb{width:100%;aspect-ratio:4 / 3;display:grid;place-items:center;background:repeating-conic-gradient(#f3f4f6 0% 25%,#fff 0% 50%) 0 0 / 16px 16px;overflow:hidden}.upload-thumb img{max-width:100%;max-height:100%;object-fit:contain;transition:transform var(--t-med)}.upload-thumb:hover img{transform:scale(1.04)}.upload-thumb:hover{outline:2px solid var(--violet);outline-offset:-2px}.upload-filetype{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--ink-3);font-size:11px;font-weight:600;letter-spacing:.4px}.upload-meta{display:flex;align-items:center;gap:4px;padding:5px 6px}.upload-name{flex:1;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.uploads-empty{text-align:center;color:var(--ink-3);padding:36px 12px;font-size:12.5px;line-height:1.6;border:1.5px dashed var(--line);border-radius:var(--radius-lg);background:linear-gradient(180deg,#fbfcfd,#f7f9fb)}.workspace{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;position:relative}.context-toolbar{height:50px;width:fit-content;max-width:calc(100% - 32px);position:absolute;top:10px;left:0;right:0;margin:0 auto;border-radius:999px;background:var(--glass);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);box-shadow:inset 0 0 0 1px #fff9,var(--shadow-sm),0 6px 20px #4f46e514;display:flex;align-items:center;gap:4px;padding:0 16px;justify-content:center;justify-content:safe center;overflow-x:auto;overflow-y:visible;z-index:25;scrollbar-width:none;transform-origin:50% 50%}.context-toolbar:after{content:"";position:absolute;inset:0;border-radius:999px;background:linear-gradient(108deg,#241046,#1c2440);opacity:0;pointer-events:none}.context-toolbar.ctx-closing{animation:ctx-close .13s var(--ease) forwards}.context-toolbar.ctx-closing:after{animation:ctx-flash-in .13s var(--ease) forwards}.context-toolbar.ctx-opening{animation:ctx-open .2s var(--ease)}.context-toolbar.ctx-opening:after{animation:ctx-flash-out .2s var(--ease)}@keyframes ctx-close{to{transform:scaleX(.04)}}@keyframes ctx-open{0%{transform:scaleX(.04)}}@keyframes ctx-flash-in{40%{opacity:.75}to{opacity:1}}@keyframes ctx-flash-out{0%{opacity:1}55%{opacity:.35}to{opacity:0}}.context-toolbar::-webkit-scrollbar{display:none}.toolbar-hint{color:var(--ink-4);font-size:12.5px;margin-left:8px;white-space:nowrap}.tb-sep{width:1px;height:24px;background:var(--line);margin:0 6px;flex:none}.tb-spacer{flex:1;min-width:12px}.color-chip{display:inline-block;width:22px;height:22px;border-radius:var(--radius-sm);box-shadow:inset 0 0 0 1px #0d12162e,0 1px 2px #0f172a14;transition:transform var(--t-fast),box-shadow var(--t-fast)}.popover-wrap:hover .color-chip{transform:scale(1.06)}.color-chip.big{width:30px;height:30px}.font-btn{max-width:170px}.font-btn span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.font-size{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--radius);height:34px;background:#fff;transition:border-color var(--t-fast),box-shadow var(--t-fast)}.font-size:focus-within{border-color:var(--violet);box-shadow:0 0 0 3px var(--violet-soft)}.font-size input{width:44px;border:none;text-align:center;outline:none;font-weight:600;font-variant-numeric:tabular-nums}.popover-wrap{position:relative;flex:none}.popover-trigger.disabled{opacity:.4;pointer-events:none}.popover-trigger.open>.tb-btn,.popover-trigger.open>.icon-btn{background:var(--bg-hover);color:var(--ink)}.popover-panel{background:var(--glass);border-radius:22px;box-shadow:inset 0 0 0 1px #fff9,0 2px 6px #3c16901a,0 14px 40px #4f46e52e,0 6px 20px #0e93e914;backdrop-filter:blur(16px) saturate(1.5);-webkit-backdrop-filter:blur(16px) saturate(1.5);border:1px solid rgba(228,231,235,.7);padding:16px;min-width:240px;z-index:90;max-height:min(560px,calc(100vh - 140px));overflow-y:auto;animation:pop-in .16s var(--ease)}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}.slider-panel{min-width:240px}.slider-row{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--ink-2);margin:8px 0 4px;font-variant-numeric:tabular-nums}.slider{width:100%;accent-color:var(--violet);height:22px}.position-panel{width:250px}.pos-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px}.pos-grid.three{grid-template-columns:1fr 1fr 1fr}.replace-color{width:260px}.replace-row{display:flex;align-items:center;gap:10px;margin:10px 0;justify-content:center}.font-panel{width:260px;padding:10px}.font-search{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:0 8px;height:34px;color:var(--ink-3);margin-bottom:8px;transition:border-color var(--t-fast),box-shadow var(--t-fast)}.font-search:focus-within{border-color:var(--violet);box-shadow:0 0 0 3px var(--violet-soft)}.font-search input{border:none;outline:none;flex:1;min-width:0;background:transparent}.font-list{max-height:320px;overflow-y:auto}.font-item{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;padding:8px 10px;border-radius:var(--radius);font-size:16px;transition:background var(--t-fast),padding-left var(--t-fast)}.font-item:hover{background:var(--bg-hover);padding-left:13px}.font-item.active{color:var(--violet-dark);background:var(--violet-soft)}.color-picker{width:232px}.cp-sv{position:relative;width:100%;height:140px;border-radius:10px;cursor:crosshair;touch-action:none;box-shadow:inset 0 0 0 1px #0d121614}.cp-sv-cursor{position:absolute;width:16px;height:16px;border-radius:50%;border:2.5px solid #fff;box-shadow:0 0 0 1px #00000059,0 1px 4px #0000004d;transform:translate(-50%,-50%);pointer-events:none}.cp-hue{-webkit-appearance:none;appearance:none;width:100%;height:12px;border-radius:999px;margin:12px 0 8px;outline:none;box-shadow:inset 0 0 0 1px #0d121614}.cp-hue::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:#fff;border:2px solid #d0d5db;box-shadow:0 1px 4px #00000040;cursor:pointer;transition:transform var(--t-fast)}.cp-hue::-webkit-slider-thumb:hover{transform:scale(1.1)}.cp-hue::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid #d0d5db;box-shadow:0 1px 4px #00000040;cursor:pointer}.cp-hex-row{display:flex;gap:6px;align-items:center}.cp-hex{flex:1;height:34px;border:1px solid var(--line);border-radius:var(--radius);padding:0 10px;outline:none;font-family:Courier Prime,monospace;text-transform:lowercase;background:#fff;transition:border-color var(--t-fast),box-shadow var(--t-fast)}.cp-hex:focus{border-color:var(--violet);box-shadow:0 0 0 3px var(--violet-soft)}.cp-section{margin-top:12px}.cp-label{font-size:10.5px;font-weight:600;color:var(--ink-3);margin-bottom:6px;letter-spacing:.6px;text-transform:uppercase}.cp-swatches{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cp-swatch{aspect-ratio:1;border-radius:7px;box-shadow:inset 0 0 0 1px #0d121624;transition:transform var(--t-fast),box-shadow var(--t-fast)}.cp-swatch:hover{transform:scale(1.12);box-shadow:inset 0 0 0 1px #0d121633,0 2px 6px #0f172a2e}.cp-swatch.active{outline:2px solid var(--violet);outline-offset:1px}.canvas-scroll{flex:1;overflow:auto;background:transparent;scrollbar-width:thin}.canvas-scroll.panning{cursor:grab}.canvas-scroll.panning *{pointer-events:none}.pages-column{display:flex;flex-direction:column;align-items:center;padding:72px 48px 80px;min-width:fit-content;min-height:100%}.page-block{margin-bottom:8px;min-width:220px}.page-header{display:flex;align-items:center;justify-content:space-between;padding:10px 2px 6px;color:var(--ink-3);font-size:12px;font-weight:600;letter-spacing:.2px}.page-header .page-actions{display:none;gap:2px}.page-header:hover .page-actions,.page-header.active .page-actions{display:inline-flex}.page-title{cursor:pointer;transition:color var(--t-fast)}.page-title:hover{color:var(--ink)}.page-header.active .page-title{color:var(--violet-dark)}.page-frame{position:relative;background:#fff;box-shadow:var(--shadow-page);border-radius:2px;transition:box-shadow var(--t-med)}.page-frame.active{outline:1px solid rgba(139,61,255,.35);box-shadow:var(--shadow-page),0 0 0 4px #8b3dff0f}.add-page-btn{margin-top:18px;display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);color:var(--ink-2);height:40px;padding:0 18px;border-radius:10px;font-weight:600;box-shadow:var(--shadow-sm);transition:border-color var(--t-fast),color var(--t-fast),box-shadow var(--t-med),transform var(--t-med)}.add-page-btn:hover{border-color:var(--violet-200);color:var(--violet-dark);box-shadow:0 4px 14px #8b3dff24;transform:translateY(-1px)}.add-page-btn:active{transform:translateY(0)}.crop-overlay{position:absolute;z-index:40}.crop-window{position:absolute;cursor:move;box-shadow:0 0 0 9999px #0d12168c;outline:1.5px solid #fff}.crop-thirds{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(to right,transparent calc(33.3% - .5px),rgba(255,255,255,.55) calc(33.3% - .5px),rgba(255,255,255,.55) calc(33.3% + .5px),transparent calc(33.3% + .5px),transparent calc(66.6% - .5px),rgba(255,255,255,.55) calc(66.6% - .5px),rgba(255,255,255,.55) calc(66.6% + .5px),transparent calc(66.6% + .5px)),linear-gradient(to bottom,transparent calc(33.3% - .5px),rgba(255,255,255,.55) calc(33.3% - .5px),rgba(255,255,255,.55) calc(33.3% + .5px),transparent calc(33.3% + .5px),transparent calc(66.6% - .5px),rgba(255,255,255,.55) calc(66.6% - .5px),rgba(255,255,255,.55) calc(66.6% + .5px),transparent calc(66.6% + .5px))}.crop-handle{position:absolute;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #00000040,0 1px 4px #0000004d;transform:translate(-50%,-50%)}.crop-actions{position:absolute;top:calc(100% + 12px);left:50%;margin-left:-80px;display:flex;gap:8px;background:var(--glass);padding:8px;border-radius:10px;backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);box-shadow:var(--shadow-pop)}.bottombar{height:44px;background:transparent;display:flex;align-items:center;justify-content:space-between;padding:0 18px;z-index:20}.bb-info{color:var(--ink-4);font-size:12px}.bb-tip{display:none}@media (min-width: 1100px){.bb-tip{display:inline}}.bb-zoom{display:flex;align-items:center;gap:6px}.zoom-slider{width:130px;accent-color:var(--violet)}.bb-pct{font-size:12px;color:var(--ink-2);width:42px;text-align:right;font-variant-numeric:tabular-nums}.download-panel{width:290px}.dl-label{font-size:10.5px;font-weight:600;color:var(--ink-3);margin:12px 0 6px;letter-spacing:.6px;text-transform:uppercase}.dl-formats{display:flex;flex-direction:column;gap:4px}.dl-format{display:flex;align-items:center;gap:8px;text-align:left;padding:8px 10px;border-radius:var(--radius);border:1px solid transparent;transition:background var(--t-fast),border-color var(--t-fast)}.dl-format:hover{background:var(--bg-hover)}.dl-format.active{border-color:var(--violet);background:var(--violet-soft)}.dl-format-name{font-weight:700;width:44px;letter-spacing:.2px}.dl-format-note{flex:1;font-size:12px;color:var(--ink-3)}.dl-scopes{display:flex;gap:6px;flex-wrap:wrap}.chip{height:30px;padding:0 12px;border-radius:999px;background:var(--bg-hover);font-size:12.5px;font-weight:500;box-shadow:inset 0 0 0 1px var(--line-soft);transition:background var(--t-fast),color var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast)}.chip:hover{background:var(--bg-press)}.chip:active{transform:scale(.96)}.chip.active{background:var(--violet);color:#fff;box-shadow:inset 0 1px #ffffff2e,0 1px 3px #5f1cc44d}.chip:disabled{opacity:.45;cursor:default;transform:none}.dl-check{display:flex;align-items:center;gap:8px;font-size:13px;margin-top:12px}.dl-check input{accent-color:var(--violet)}.download-btn{height:40px}.resize-panel{width:260px}.resize-fields{display:flex;gap:8px}.resize-fields label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--ink-3);flex:1}.resize-fields input,.resize-fields select{height:36px;border:1px solid var(--line);border-radius:var(--radius);padding:0 8px;outline:none;width:100%;background:#fff;transition:border-color var(--t-fast),box-shadow var(--t-fast)}.resize-fields input:focus{border-color:var(--violet);box-shadow:0 0 0 3px var(--violet-soft)}.modal-backdrop{position:fixed;inset:0;background:#0d121673;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:grid;place-items:center;z-index:100;animation:fade-in .16s var(--ease)}@keyframes fade-in{0%{opacity:0}}.modal{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-pop);padding:22px;width:min(440px,calc(100vw - 40px));animation:modal-in .2s var(--ease)}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.modal-title{font-size:17px;font-weight:700;letter-spacing:-.3px;margin-bottom:4px;overflow-wrap:anywhere}.modal-sub{color:var(--ink-3);font-size:13px;line-height:1.5;margin:0 0 14px}.modal-option{display:flex;gap:12px;align-items:flex-start;width:100%;text-align:left;border:1px solid var(--line);border-radius:var(--radius-lg);padding:14px;margin-bottom:10px;color:var(--ink-2);transition:border-color var(--t-fast),box-shadow var(--t-med),transform var(--t-med)}.modal-option:hover{border-color:var(--violet-200);box-shadow:0 4px 14px #8b3dff24;transform:translateY(-1px)}.modal-option:active{transform:translateY(0)}.modal-option span{display:flex;flex-direction:column;gap:3px}.modal-option b{color:var(--ink)}.modal-option small{font-size:12px;color:var(--ink-3);line-height:1.45}.toasts{position:fixed;bottom:60px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:120;pointer-events:none}.toast{background:#1c242cf0;color:#fff;padding:10px 16px;border-radius:10px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:13px;box-shadow:var(--shadow-pop),inset 0 1px #ffffff14;max-width:480px;animation:toast-in .2s var(--ease)}.toast.error{background:#b91c30f2}@keyframes toast-in{0%{opacity:0;transform:translateY(8px) scale(.97)}}body.eyedropping .canvas-scroll,body.eyedropping .canvas-scroll canvas{cursor:crosshair!important}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#c9ced6;border-radius:999px;border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#aab2bd;border-width:2px;background-clip:padding-box}::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:transparent}*{scrollbar-color:#c9ced6 transparent}
