body,html{margin:0;font-family:var(--pf-font);background:var(--pf-bg);color:var(--pf-text);-webkit-font-smoothing:antialiased}html{overflow-y:scroll}.pf-topbar{background:var(--pf-panel);border-bottom:1px solid var(--pf-border)}.pf-topbar-grad{height:4px;background:var(--pf-grad)}.pf-topbar-inner{max-width:var(--content-w);margin:0 auto;padding:14px 0;min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:16px}.pf-topbar-left,.pf-topbar-right{display:flex;align-items:center;gap:12px}.pf-impersonate-banner{display:inline-flex;align-items:center;min-height:var(--btn-height);padding:0 14px;border-radius:8px;background:var(--pf-accent);border:1px solid var(--pf-accent);color:#fff;font-size:var(--fs-body);white-space:nowrap}.pf-impersonate-banner strong{color:#fff;font-weight:600;margin-left:4px}.pf-admin-h2{font-size:var(--fs-body);font-weight:600;color:var(--pf-text);margin:28px 0 12px}.pf-admin-card{background:var(--pf-panel);border:1px solid var(--pf-accent);border-radius:var(--pf-radius);box-shadow:var(--pf-shadow);padding:20px 22px}.pf-admin-card .pf-admin-h2:first-child{margin-top:0}.pf-admin-create{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.pf-admin-input{flex:1 1 200px;min-width:160px;font-family:var(--pf-font);font-size:var(--fs-body);padding:10px 12px;border:1px solid var(--pf-border);border-radius:9px;background:#fff;color:var(--pf-text)}.pf-admin-input:focus{outline:none;border-color:var(--pf-accent);box-shadow:0 0 0 3px rgba(16,185,129,.15)}.pf-admin-btn{flex:0 0 auto;width:auto;padding-left:20px;padding-right:20px}.pf-admin-error{margin-top:12px;color:var(--pf-danger);font-size:var(--fs-body)}.pf-admin-list{display:flex;flex-direction:column;gap:14px}.pf-admin-tenant-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.pf-admin-tenant-actions{display:flex;gap:8px;flex:0 0 auto}.pf-admin-tenant-name{font-size:var(--fs-body);font-weight:600;color:var(--pf-text)}.pf-admin-tenant-slug{font-size:var(--fs-body);color:var(--pf-muted)}.pf-admin-modules{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:16px;padding-top:16px;border-top:1px solid var(--pf-border)}.pf-admin-modules-label{font-size:var(--fs-body);color:var(--pf-muted)}.pf-admin-toggle{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-body);color:var(--pf-text);cursor:pointer}.pf-admin-toggle input{width:16px;height:16px;accent-color:var(--pf-accent);cursor:pointer}.pf-admin-soon{color:var(--pf-muted);font-style:normal}.pf-main{max-width:var(--content-w);margin:0 auto;padding:32px 0 60px}.pf-welcome2{font-size:var(--fs-display);font-weight:600;margin:0 0 24px;color:var(--pf-text)}.pf-grid{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:18px}.pf-tile{flex-grow:0;flex-shrink:0;flex-basis:calc((100% - 54px) / 4);max-width:calc((100% - 54px) / 4);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:var(--pf-panel);border:1px solid var(--pf-accent);border-radius:var(--pf-radius);box-shadow:0 8px 22px rgba(16,80,55,.06);padding:20px;aspect-ratio:1.6/1;overflow:hidden;text-decoration:none;color:var(--pf-text);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease,background-color .3s ease,color .3s ease}@media (max-width:1000px){.pf-tile{flex-basis:calc((100% - 18px) / 2);max-width:calc((100% - 18px) / 2)}}@media (max-width:540px){.pf-tile{flex-basis:100%;max-width:100%}}.pf-tile-soon{opacity:.6}.pf-tile-icon{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(16,185,129,.12);color:var(--pf-accent);margin:0 0 16px;transition:background-color .3s ease,color .3s ease}.pf-tile-title{font-weight:600;color:inherit}.pf-tile-desc,.pf-tile-title{font-size:var(--fs-body);transition:color .3s ease}.pf-tile-desc{font-weight:400;color:var(--pf-text);margin-top:8px;line-height:1.5}.pf-tile-foot{font-size:var(--fs-body);font-weight:700;color:var(--pf-accent);margin-top:16px;transition:color .3s ease}.pf-tile-soon .pf-tile-foot{color:var(--pf-muted)}.pf-tile-active:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(16,185,129,.28);border-color:transparent;background:var(--pf-accent);color:#fff}.pf-tile-active:hover .pf-tile-icon{background:rgba(255,255,255,.22);color:#fff}.pf-tile-active:hover .pf-tile-desc{color:rgba(255,255,255,.92)}.pf-tile-active:hover .pf-tile-foot{color:#fff}.pf-login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--pf-bg)}.pf-card{width:100%;max-width:420px;background:var(--pf-panel);border:1px solid var(--pf-border);border-radius:20px;box-shadow:var(--pf-shadow);overflow:hidden}.pf-grad{height:6px;background:var(--pf-grad)}.pf-card-inner{padding:34px 32px 30px;display:flex;flex-direction:column}.pf-label{font-size:var(--fs-body);font-weight:600;margin:0 0 7px}.pf-input,.pf-label{color:var(--pf-text)}.pf-input{width:100%;box-sizing:border-box;font:inherit;font-size:var(--fs-body);background:#fff;border:1.5px solid var(--pf-border);border-radius:10px;padding:12px 13px;margin-bottom:16px;transition:.15s}.pf-input::placeholder{color:var(--pf-muted)}.pf-input:focus{outline:none;border-color:var(--pf-accent);box-shadow:0 0 0 3px rgba(16,185,129,.18)}.pf-error{background:#fbeceb;border:1px solid #e7b4b0;color:var(--pf-danger);font-size:var(--fs-body);padding:10px 12px;border-radius:9px;margin-bottom:14px}.pf-login-foot{margin-top:18px;text-align:center;font-size:var(--fs-body);color:var(--pf-muted)}.pf-login-foot a{color:var(--pf-accent);text-decoration:none;font-weight:600}.pf-message-card{background:var(--pf-panel);border:1px solid var(--pf-border);border-radius:var(--pf-radius);box-shadow:var(--pf-shadow);padding:40px 36px;max-width:440px;width:100%;text-align:center}.pf-message-code{font-size:var(--fs-display);font-weight:var(--fw-heading);color:var(--pf-accent)}.pf-message-text{color:var(--pf-muted);line-height:1.5;margin:0 0 22px}.pf-message-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.pf-generator{--brand:#10b981;min-height:100vh;display:flex;flex-direction:column;height:100vh;background:var(--pf-bg)}.pf-generator>#app-root,.pf-generator>#designer-root{flex:1 1 auto;min-height:0}.pf-generator .gen-wrap{display:flex;justify-content:center;align-items:stretch;gap:16px;height:100%;padding:12px 0;background:var(--pf-bg)}.pf-generator .gen-left,.pf-generator .gen-right{flex:0 0 400px;background:var(--pf-panel);border:1px solid var(--pf-border);padding:18px;overflow-x:hidden;overflow-y:auto;min-width:0}.pf-generator .gen-stage{flex:0 0 auto;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0}.pf-generator .gen-section{margin-bottom:2.5mm;border:1px solid var(--pf-accent);border-radius:var(--pf-radius);background:var(--pf-panel);padding:12px}.pf-generator .gen-section:last-child{margin-bottom:0}.pf-generator .gen-left .btnrow,.pf-generator .gen-right .btnrow{display:flex;flex-direction:column;gap:2.5mm;margin-top:2.5mm}.pf-generator .gen-left .btnrow:first-of-type,.pf-generator .gen-right .btnrow:first-of-type{margin-top:0}.pf-generator .draft-empty{color:var(--pf-muted);font-size:var(--fs-body);line-height:1.5}.pf-generator .draftgrid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:8px;gap:8px;margin-bottom:2.5mm}.pf-generator .draft-card{border:1px solid var(--pf-border);border-radius:9px;overflow:hidden;background:#fff;cursor:pointer;display:flex;flex-direction:column;transition:border-color .15s ease,box-shadow .15s ease}.pf-generator .draft-card:hover{border-color:var(--pf-accent)}.pf-generator .draft-card.active{border-color:var(--pf-accent);box-shadow:inset 0 0 0 2px rgba(16,185,129,.35)}.pf-generator .draft-thumb{position:relative;width:100%;overflow:hidden;background:#fff;border-bottom:1px solid var(--pf-border)}.pf-generator .draft-thumb-scale{position:absolute;top:0;left:0;width:210mm;transform-origin:top left;pointer-events:none}.pf-generator .draft-cap{font-size:12px;color:var(--pf-muted);padding:5px 8px 0;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pf-generator .draft-card-actions{display:flex;gap:4px;padding:5px 6px 6px}.pf-generator .draft-card-actions button{flex:1 1;min-height:0;padding:3px 0;border-radius:6px;font-size:14px;line-height:1;background:#fff;cursor:pointer}.pf-generator .draftcard-dl{color:var(--pf-accent);border:1px solid var(--pf-accent)}.pf-generator .draftcard-dl:hover{background:rgba(16,185,129,.12)}.pf-generator .draftcard-del{color:var(--pf-danger);border:1px solid var(--pf-danger)}.pf-generator .draftcard-del:hover{background:#fdecea}.pf-generator .preview-outer{display:flex;justify-content:center;align-items:center;overflow:visible;padding:0}.pf-generator .gen-wrap{opacity:0;transition:opacity .12s ease}.pf-generator.gen-ready .gen-wrap{opacity:1}.pf-generator .preview-scale{transform-origin:top left;overflow:clip;box-shadow:0 6px 24px rgba(20,40,70,.16)}.pf-generator #certPage{transform-origin:top left}.pf-generator #dirtyBar{position:fixed;top:60px;left:50%;transform:translateX(-50%);z-index:60}@media print{.pf-generator .gen-wrap{display:block;height:auto}.pf-generator .gen-left,.pf-generator .gen-right{display:none!important}.pf-generator .gen-stage{overflow:visible;padding:0}}.pf-generator .btn:hover{background:var(--pf-accent-dark)}.pf-generator .dropdown:focus,.pf-generator .field input:focus,.pf-generator .field textarea:focus{border-color:var(--pf-accent);box-shadow:0 0 0 3px rgba(16,185,129,.15)}.pf-generator .field label,.pf-generator .field-cap{display:block;margin-bottom:2.5mm}.pf-generator .field{margin-bottom:2.5mm}.pf-generator .field input,.pf-generator .field input[type=checkbox],.pf-generator .field input[type=radio],.pf-generator .field label+label,.pf-generator .field textarea{margin-bottom:0}.pf-generator .dropdown{margin-bottom:2.5mm}.pf-generator .btn-full,.pf-generator .btnrow{margin-top:0}.pf-action-btn,.pf-btn,.pf-generator .btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--btn-height);padding-top:0;padding-bottom:0;font-family:var(--pf-font);font-size:var(--fs-body);font-weight:600;line-height:1;border-radius:8px}.pf-action-btn{flex:0 0 auto;padding:7px 14px;color:var(--pf-text);background:#fff;border:1px solid var(--pf-border);cursor:pointer;text-decoration:none;transition:.15s}.pf-action-btn:hover{border-color:var(--pf-accent);color:var(--pf-accent-dark);background:#fff}.pf-action-btn.pf-danger,.pf-action-btn.pf-signout,.pf-btn.pf-danger{color:#fff;background:var(--pf-danger);border-color:var(--pf-danger)}.pf-action-btn.pf-danger:hover,.pf-action-btn.pf-signout:hover,.pf-btn.pf-danger:hover{color:#fff;background:var(--pf-danger-dark);border-color:var(--pf-danger-dark)}.pf-btn{width:100%;margin-top:6px;border:none;color:var(--pf-on-accent);background:var(--pf-accent);box-shadow:0 8px 20px rgba(16,185,129,.28);cursor:pointer;transition:.15s}.pf-btn:hover{background:var(--pf-accent-dark)}.pf-btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width:680px){.pf-card-inner{padding:26px 20px}.pf-main{padding:24px 16px 40px}.pf-topbar-inner{padding:12px 16px;flex-wrap:wrap;row-gap:8px}.pf-topbar-left,.pf-topbar-right{flex-wrap:wrap}}.pf-error,.pf-generator .dropdown,.pf-generator .field input,.pf-generator .field label,.pf-generator .field textarea,.pf-generator .field-cap,.pf-generator .note,.pf-input,.pf-label,.pf-login-foot,.pf-tile-desc,.pf-tile-foot,.pf-tile-title,.pf-welcome2,body,html{font-size:var(--fs-body)}.pf-designer .dz-wrap{display:flex;justify-content:center;align-items:stretch;gap:16px;height:100%;padding:12px 0;background:var(--pf-bg)}.pf-designer .dz-left,.pf-designer .dz-right{flex:0 0 400px;background:var(--pf-panel);border:1px solid var(--pf-border);padding:18px;overflow-x:hidden;overflow-y:auto;color:var(--pf-text);min-width:0}.pf-designer .dz-stage{flex:0 0 auto}.pf-designer .dz-section{margin-bottom:22px}.pf-designer .dz-cap{display:block;font-weight:600;margin-bottom:8px}.pf-designer .dz-note{font-size:var(--fs-body);color:var(--pf-muted);margin-bottom:10px;line-height:1.4}.pf-designer .dz-cap,.pf-designer .dz-note,.pf-designer .dz-prop-col>label{padding-left:10px}.pf-designer .dz-inp,.pf-designer .dz-select{width:100%;font-family:var(--pf-font);font-size:var(--fs-body);padding:8px 10px;border:1px solid var(--pf-border);border-radius:8px;background:#fff;color:var(--pf-text);box-sizing:border-box}.pf-designer .dz-color:focus,.pf-designer .dz-fmt:focus,.pf-designer .dz-inp:focus,.pf-designer .dz-select:focus{outline:none;border-color:var(--pf-accent);box-shadow:0 0 0 3px rgba(16,185,129,.15)}.pf-designer .dz-btnrow{display:flex;flex-wrap:wrap;gap:2.5mm;margin-top:2.5mm}.pf-designer .dz-btnrow-4{display:grid;grid-template-columns:repeat(4,1fr);flex-wrap:nowrap}.pf-designer .dz-btnrow-4 .dz-mini{min-width:0;padding-left:4px;padding-right:4px}.pf-designer .dz-btnrow-3{display:grid;grid-template-columns:repeat(3,1fr);flex-wrap:nowrap}.pf-designer .dz-btnrow-3 .dz-mini{min-width:0;padding-left:4px;padding-right:4px}.pf-designer .dz-backup-cap{margin-top:var(--pf-gap)}.pf-designer .dz-mini.dz-save-btn{background:var(--pf-accent);border-color:var(--pf-accent);color:#fff}.pf-designer .dz-mini.dz-save-btn:hover:not(:disabled){background:var(--pf-accent-dark);border-color:var(--pf-accent-dark);color:#fff}.pf-designer .dz-mini.dz-save-btn:disabled{background:#bfe8d6;border-color:#bfe8d6;color:#fff;opacity:1;cursor:default}.pf-designer .dz-mini{flex:1 1 auto;font-family:var(--pf-font);font-size:var(--fs-body);cursor:pointer;padding:7px 10px;border:1px solid var(--pf-border);border-radius:8px;background:#fff;color:var(--pf-text);min-height:var(--btn-height)}.pf-designer .dz-mini:hover{border-color:var(--pf-accent);color:var(--pf-accent-dark)}.pf-designer .dz-mini.danger{color:#fff;background:var(--pf-danger);border-color:var(--pf-danger)}.pf-designer .dz-mini.danger:hover{color:#fff;background:var(--pf-danger-dark);border-color:var(--pf-danger-dark)}.pf-designer .dz-fields{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.pf-designer .dz-field-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--pf-border);border-radius:8px;background:var(--pf-panel);transition:transform .16s ease}.pf-designer .dz-field-name{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pf-designer .dz-fgrip{flex:0 0 auto;cursor:-webkit-grab;cursor:grab;color:var(--pf-muted);font-size:15px;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:0 2px;touch-action:none}.pf-designer .dz-fgrip:active{cursor:-webkit-grabbing;cursor:grabbing}.pf-designer .dz-field-row.dz-fdragging{transition:none;position:relative;z-index:10;border-color:var(--pf-accent);box-shadow:0 8px 20px rgba(16,80,55,.22);cursor:-webkit-grabbing;cursor:grabbing}.pf-designer .dz-req{font-size:var(--fs-body);color:var(--pf-muted);display:inline-flex;align-items:center;gap:3px}.pf-designer .dz-x{border:none;background:none;color:var(--pf-muted);font-size:var(--fs-glyph);cursor:pointer;line-height:1;padding:0 2px}.pf-designer .dz-x:hover{color:var(--pf-danger)}.pf-designer .dz-prop-h{font-weight:600;padding-left:10px}.pf-designer #dzProps{display:flex;flex-direction:column;gap:var(--dz-gap);align-content:flex-start}.pf-designer .dz-prop{display:flex;align-items:center;justify-content:space-between;gap:10px}.pf-designer .dz-prop>label{font-size:var(--fs-body);color:var(--pf-muted);flex:0 0 140px;padding-left:10px;line-height:1.25}.pf-designer .dz-prop .dz-inp,.pf-designer .dz-prop .dz-select{flex:1 1}.pf-designer .dz-color{width:44px;height:32px;border:1px solid var(--pf-border);border-radius:8px;background:#fff;cursor:pointer;padding:2px}.pf-designer .dz-del-el{width:100%;margin-top:8px}.pf-designer .dz-empty{color:var(--pf-muted);font-size:var(--fs-body);line-height:1.5;padding-left:10px}.pf-designer .dz-stage{min-width:0;min-height:0;padding:0}.pf-designer .dz-canvas-outer,.pf-designer .dz-stage{display:flex;align-items:center;justify-content:center}.pf-designer .dz-wrap{opacity:0;transition:opacity .12s ease}.pf-designer.dz-ready .dz-wrap{opacity:1}.pf-designer .dz-scale{overflow:clip;overflow-clip-margin:14px}.pf-designer .dz-page,.pf-designer .dz-scale{transform-origin:top left}.pf-designer .dz-modetabs{display:grid;grid-template-columns:1fr 1fr;margin-bottom:8px;border:1px solid var(--pf-border);border-radius:9px;overflow:hidden}.pf-designer .dz-tab{font-family:var(--pf-font);font-size:var(--fs-body);cursor:pointer;padding:0 8px;border:none;background:#eef1f0;color:var(--pf-muted);min-height:var(--btn-height);display:inline-flex;align-items:center;justify-content:center}.pf-designer .dz-tab+.dz-tab{border-left:1px solid var(--pf-border)}.pf-designer .dz-tab:hover:not(:disabled):not(.dz-on){color:var(--pf-accent-dark)}.pf-designer .dz-tab.dz-on{background:var(--pf-accent);color:#fff;cursor:default}.pf-designer .dz-mini:disabled{opacity:.45;cursor:default}.pf-designer .dz-prop.dz-prop-col{flex-direction:column;align-items:stretch;gap:4px}.pf-designer .dz-prop.dz-prop-col>label{flex:none}.pf-designer .dz-page .dz-elx{pointer-events:none}.pf-designer .dz-page .dz-frame{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pf-designer .dz-page .dz-el{cursor:move;outline:1px dashed transparent}.pf-designer .dz-page .dz-el:hover{outline-color:var(--pf-accent-2)}.pf-designer .dz-page .dz-el.dz-sel{outline:1.5px solid var(--pf-accent);background:rgba(16,185,129,.06)}.pf-designer .dz-page .dz-img-ph{display:flex;align-items:center;justify-content:center;border:1px dashed var(--pf-accent);color:var(--pf-accent-dark);font-size:10pt;background:rgba(16,185,129,.05)}.pf-designer .dz-page .dz-letterhead{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pf-designer .dz-page .dz-guide{position:absolute;background:#ff3b8d;pointer-events:none;z-index:50}.pf-designer .dz-page .dz-guide-v{top:0;bottom:0;width:1px}.pf-designer .dz-page .dz-guide-h{left:0;right:0;height:1px}.pf-designer .dz-prop-tools{display:flex;gap:var(--dz-gap);margin:0}.pf-designer #dpGradWrap,.pf-designer #dpShadowWrap{display:flex;flex-direction:column;gap:var(--dz-gap)}.pf-designer .dz-prop-tools .dz-mini{flex:1 1}.pf-designer .dz-xy{display:flex;gap:6px;flex:1 1}.pf-designer .dz-xy input{flex:1 1;min-width:0}.pf-designer .dz-fmt{flex:0 0 auto;font-family:var(--pf-font);font-size:var(--fs-body);padding:3px 4px;border:1px solid var(--pf-border);border-radius:6px;background:#fff;color:var(--pf-text)}.pf-designer .dz-page .dz-rz{position:absolute;width:10px;height:10px;background:#fff;border:2px solid var(--pf-accent);border-radius:2px;z-index:41}.pf-designer .dz-page .dz-rz-nw{left:-6px;top:-6px;cursor:nwse-resize}.pf-designer .dz-page .dz-rz-ne{right:-6px;top:-6px;cursor:nesw-resize}.pf-designer .dz-page .dz-rz-sw{left:-6px;bottom:-6px;cursor:nesw-resize}.pf-designer .dz-page .dz-rz-se{right:-6px;bottom:-6px;cursor:nwse-resize}.pf-designer .dz-page .dz-rz-n{left:50%;top:-6px;margin-left:-5px;cursor:ns-resize}.pf-designer .dz-page .dz-rz-s{left:50%;bottom:-6px;margin-left:-5px;cursor:ns-resize}.pf-designer .dz-page .dz-rz-w{top:50%;left:-6px;margin-top:-5px;cursor:ew-resize}.pf-designer .dz-page .dz-rz-e{top:50%;right:-6px;margin-top:-5px;cursor:ew-resize}.pf-designer .dz-page .dz-rot{position:absolute;left:50%;top:-22px;width:14px;height:14px;margin-left:-7px;background:#fff;border:2px solid var(--pf-accent);border-radius:50%;z-index:42;cursor:-webkit-grab;cursor:grab;box-shadow:0 1px 3px rgba(0,0,0,.2)}.pf-designer .dz-page .dz-rot:active{cursor:-webkit-grabbing;cursor:grabbing}.pf-designer .dz-page .dz-rot:before{content:"";position:absolute;left:50%;top:12px;width:2px;height:10px;margin-left:-1px;background:var(--pf-accent)}.pf-designer .dz-page .dz-editing{outline:2px solid var(--pf-accent);background:rgba(255,255,255,.85);cursor:text;min-width:8mm}.pf-designer .dz-addgrid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:2.5mm;gap:2.5mm;margin-top:2.5mm}.pf-designer .dz-addgrid .dz-mini{width:100%}.pf-designer .dz-page .dz-el.dz-locked{pointer-events:none}.pf-designer .dz-mini.dz-on{border-color:var(--pf-accent);color:var(--pf-accent-dark);background:rgba(16,185,129,.1)}.pf-designer .dz-page .dz-badge{position:absolute;transform:translate(-50%,-140%);background:var(--pf-accent-dark,#0b6);color:#fff;font-size:2.6mm;padding:.5mm 1.5mm;border-radius:1mm;pointer-events:none;z-index:62;white-space:nowrap}.pf-designer .dz-page .dz-marquee{position:absolute;border:1px solid var(--pf-accent);background:rgba(16,185,129,.1);pointer-events:none;z-index:60}.pf-designer .dz-color-tools{display:flex;flex-wrap:wrap;gap:3px;align-items:center;margin-left:6px}.pf-designer .dz-swatch{width:16px;height:16px;border:1px solid var(--pf-border);border-radius:4px;padding:0;cursor:pointer;background-clip:padding-box}.pf-designer .dz-swatch:hover{outline:1px solid var(--pf-accent)}.pf-designer .dz-eyedrop{background:#fff;font-size:var(--fs-body);line-height:1;color:var(--pf-muted)}.dz-ctx,.pf-designer .dz-ctx{position:fixed;z-index:300;background:#fff;border:1px solid var(--pf-border);border-radius:10px;box-shadow:0 8px 28px rgba(15,42,34,.18);padding:6px;min-width:160px;max-height:320px;overflow-y:auto}.dz-ctx .dz-ctx-item{display:block;width:100%;text-align:left;border:none;background:none;padding:7px 8px;border-radius:6px;cursor:pointer;font-size:var(--fs-body);color:var(--pf-text);font-family:var(--pf-font)}.dz-ctx .dz-ctx-item:hover{background:rgba(16,185,129,.1)}.dz-ctx .dz-ctx-item.danger{color:var(--pf-danger)}.dz-ctx .dz-ctx-item.danger:hover{background:rgba(180,35,24,.08)}.pf-designer{--dz-gap:var(--pf-gap)}.pf-designer .dz-left,.pf-designer .dz-right{display:flex;flex-direction:column;gap:var(--dz-gap);align-content:flex-start}.pf-designer #dzGlobalCrud,.pf-designer #dzReportPick,.pf-designer #dzReportTools{display:contents}.pf-designer #dzFields,.pf-designer #dzReportVars,.pf-designer .dz-section{display:flex;flex-direction:column;gap:var(--dz-gap);margin:0}.pf-designer .dz-tile{border:1px solid var(--pf-accent);border-radius:var(--pf-radius);background:var(--pf-panel);padding:12px}.pf-designer .dz-addgrid,.pf-designer .dz-btnrow{margin:0;gap:var(--dz-gap)}.pf-designer .dz-cap,.pf-designer .dz-del-el,.pf-designer .dz-empty,.pf-designer .dz-fields,.pf-designer .dz-modetabs,.pf-designer .dz-note,.pf-designer .dz-prop,.pf-designer .dz-prop-h,.pf-designer .dz-prop-tools{margin:0}@media (max-width:1200px){.pf-designer,.pf-generator{height:auto;min-height:100vh}.pf-generator>#app-root,.pf-generator>#designer-root{flex:0 0 auto}.pf-designer .dz-wrap,.pf-generator .gen-wrap{flex-direction:column;align-items:stretch;height:auto}.pf-designer .dz-left,.pf-designer .dz-right,.pf-generator .gen-left,.pf-generator .gen-right{flex:0 0 auto;overflow:visible}.pf-generator .pf-topbar-inner{max-width:100%}.pf-designer .dz-stage,.pf-generator .gen-stage{min-height:70vh}}*{box-sizing:border-box}.modal-ov{position:fixed;inset:0;background:rgba(20,30,45,.45);display:flex;align-items:center;justify-content:center;z-index:1000;padding:18px}.modal-box{background:var(--pf-panel);border-radius:var(--pf-radius);box-shadow:0 18px 50px rgba(20,40,70,.3);max-width:380px;width:100%;padding:20px}.modal-box .m-msg{font-size:var(--fs-body);line-height:1.5;color:var(--ink);margin-bottom:14px}.modal-box input{width:100%;border:1.5px solid var(--line);border-radius:9px;padding:10px 11px;font:inherit;font-size:var(--fs-body);margin-bottom:14px}.modal-box input:focus{outline:none;border-color:var(--pf-accent);box-shadow:0 0 0 3px rgba(16,185,129,.15)}.modal-box select{width:100%;border:1.5px solid var(--line);border-radius:9px;padding:10px 11px;font:inherit;font-size:var(--fs-body);background:#fcfdff;color:var(--ink);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' fill='none' stroke='%235d6b7a' stroke-width='1.6'/></svg>");background-repeat:no-repeat;background-position:right 12px center}.modal-box select:focus{outline:none;border-color:var(--pf-accent);box-shadow:0 0 0 3px rgba(16,185,129,.15)}.modal-actions{display:flex;gap:8px;justify-content:flex-end}.modal-actions button{cursor:pointer;border:none;border-radius:8px;padding:0 14px;min-height:var(--btn-height);display:inline-flex;align-items:center;justify-content:center;font:inherit;font-weight:700;font-size:var(--fs-body)}.modal-actions .m-cancel{background:var(--pf-neutral-bg);color:var(--ink)}.modal-actions .m-ok{background:var(--pf-accent);color:#fff}.modal-actions .m-ok.danger{background:var(--pf-danger)}#dirtyBar{position:-webkit-sticky;position:sticky;top:0;z-index:2000;background:var(--pf-danger);color:#fff;display:flex;gap:12px;padding:11px 16px;font-size:var(--fs-body);font-weight:600;box-shadow:0 2px 10px rgba(0,0,0,.18)}#dirtyBar,#dirtyBar button{align-items:center;justify-content:center}#dirtyBar button{background:#fff;color:var(--pf-danger);border:none;border-radius:8px;padding:0 12px;min-height:var(--btn-height);display:inline-flex;font:inherit;font-size:var(--fs-body);font-weight:700;cursor:pointer}#dirtyBar button:hover{background:#ffe9e8}#dirtyBar button.ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.7)}#dirtyBar button.ghost:hover{background:rgba(255,255,255,.15)}#dirtyBar.success{background:var(--pf-success)}#dirtyBar.success button{display:none}@media print{#dirtyBar{display:none!important}}@media (max-width:600px){.field{margin-bottom:12px}.field label{font-size:var(--fs-body)}.dropdown,.field input,.field textarea{font-size:var(--fs-input-mobile);padding:12px;min-height:46px;border-radius:10px}.btn{font-size:var(--fs-body);padding:8px 12px;border-radius:8px}.btnrow{grid-template-columns:1fr;gap:6px}.note{font-size:var(--fs-body);padding:12px}.preview-outer{padding:0}}.field{margin-bottom:16px}.field label,.field-cap{display:block;font-size:var(--fs-body);font-weight:600;margin-bottom:6px;color:#33404e}.field input,.field textarea{width:100%;box-sizing:border-box;border:1.5px solid var(--line);border-radius:9px;padding:9px 11px;font:inherit;font-size:var(--fs-body);background:#fcfdff;color:var(--ink);transition:.15s}.field textarea{resize:none;height:120px;line-height:1.4;overflow:auto}.field input[type=date]{text-transform:uppercase}.field input:focus,.field textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(31,111,184,.12);background:#fff}.dropdown{width:100%;border:1.5px solid var(--line);border-radius:9px;padding:10px 11px;font:inherit;font-size:var(--fs-body);background:#fcfdff;color:var(--ink);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' fill='none' stroke='%235d6b7a' stroke-width='1.6'/></svg>");background-repeat:no-repeat;background-position:right 12px center;margin-bottom:12px}.dropdown:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(31,111,184,.12);background-color:#fff}.note{font-size:var(--fs-body);color:var(--muted);background:#f6f9fc;border:1px dashed #c3d2e0;border-radius:9px;padding:14px;line-height:1.55}.btnrow{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin-top:8px}.btn.ghost{background:#fff;color:var(--brand);border:1.5px solid var(--brand);box-shadow:none}.btn-full{width:100%;margin-top:10px}.btn.ghost:hover{background:#f3f9ff}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn{cursor:pointer;border:none;border-radius:8px;padding:8px 12px;min-height:var(--btn-height);font:inherit;font-weight:700;font-size:var(--fs-body);display:flex;align-items:center;justify-content:center;width:100%;background:var(--brand);color:#fff;box-shadow:0 6px 16px rgba(16,185,129,.25);transition:.15s}.btn:hover{background:var(--pf-accent-dark)}.preview-outer{width:100%;display:flex;justify-content:center;overflow:hidden;padding:4px}.preview-scale{transform-origin:top center}.page{position:relative;width:210mm;height:297mm;background:#fff;color:#767171;overflow:hidden;box-shadow:0 6px 24px rgba(20,40,70,.18)}@media print{@page{size:A4;margin:0}body,html{background:#fff}.preview-outer{overflow:visible;padding:0}.preview-scale{transform:none!important;height:auto!important}.page{box-shadow:none;margin:0}}#dirtyBar{height:50px;padding:0 16px;transition:background-color 1s ease,opacity 1s ease}.btn-flash{transition:background-color 1s ease,color 1s ease,box-shadow 1s ease!important}.btn-flash.btn-flash-on{background:var(--pf-success)!important;color:#fff!important;box-shadow:0 6px 16px rgba(31,157,85,.3)!important}.field input,.field textarea{transition:border-color .15s ease,box-shadow .15s ease}#dirtyBar button,.btn,.dz-ctx .dz-ctx-item,.modal-actions button,.pf-action-btn,.pf-btn,.pf-designer .dz-eyedrop,.pf-designer .dz-fmt,.pf-designer .dz-mini,.pf-designer .dz-tab,.pf-designer .dz-x,.pf-generator .btn{font-size:var(--fs-button);font-weight:var(--fw-button)!important;white-space:nowrap}.pf-admin-h2,.pf-designer .dz-cap,.pf-designer .dz-prop-h,.pf-generator .field-cap,.pf-label,.pf-tile-title,.pf-welcome2{font-size:var(--fs-heading);font-weight:var(--fw-heading)}.pf-generator .field label{font-weight:var(--fw-button)}.pf-tile-desc,.pf-tile-foot{font-size:var(--fs-body)}.cdd{position:relative;display:block;width:100%}.cdd-compact{display:inline-flex;width:auto;flex:0 0 auto;vertical-align:middle}.cdd-compact .cdd-trigger{width:auto;min-width:104px}.cdd-trigger{box-sizing:border-box;width:100%;display:flex;align-items:center;text-align:left;min-height:var(--btn-height);border:1.5px solid var(--line);border-radius:9px;background:#fcfdff;color:var(--ink);font-family:var(--pf-font);font-size:var(--fs-body);font-weight:400;padding:8px 34px 8px 11px;cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' fill='none' stroke='%235d6b7a' stroke-width='1.6'/></svg>");background-repeat:no-repeat;background-position:right 12px center}.cdd-trigger:focus{outline:none;border-color:var(--pf-accent);box-shadow:0 0 0 3px rgba(16,185,129,.15)}.cdd-trigger:disabled{opacity:.55;cursor:default}.cdd-trigger.cdd-open{border-color:var(--pf-accent);box-shadow:none}.cdd-trigger.cdd-open:not(.cdd-open-up){border-bottom-left-radius:0;border-bottom-right-radius:0}.cdd-trigger.cdd-open.cdd-open-up{border-top-left-radius:0;border-top-right-radius:0}.cdd-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cdd-pop{box-sizing:border-box;position:fixed;z-index:100000;background:#fff;border:1.5px solid var(--pf-accent);border-radius:9px;box-shadow:0 12px 26px rgba(16,80,55,.14);padding:6px;overflow:auto;-webkit-overflow-scrolling:touch}.cdd-pop.cdd-below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.cdd-pop.cdd-above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.cdd-opt{padding:9px 11px;border-radius:8px;cursor:pointer;font-size:var(--fs-body);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cdd-opt:hover{background:rgba(16,185,129,.16)}.cdd-dis{opacity:.5;cursor:default}.cdd-dis:hover{background:transparent}.cdd-group{padding:9px 11px 4px;font-size:12px;font-weight:700;color:var(--pf-muted);text-transform:uppercase;letter-spacing:.04em}.cdp-input{cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%235d6b7a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='4' width='18' height='18' rx='2'/><path d='M16 2v4M8 2v4M3 10h18'/></svg>");background-repeat:no-repeat;background-position:right 11px center}.cdp-input::-webkit-calendar-picker-indicator{display:none}.cdp-input.cdp-open{border-color:var(--pf-accent);box-shadow:0 0 0 3px rgba(16,185,129,.15)}.cdp-pop{box-sizing:border-box;position:fixed;z-index:100000;background:#fff;border:1.5px solid var(--pf-accent);border-radius:12px;box-shadow:0 12px 26px rgba(16,80,55,.16);padding:10px;width:252px;color:var(--ink)}.cdp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.cdp-title{font-size:var(--fs-body);font-weight:700}.cdp-nav{width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.cdp-nav:hover{background:var(--pf-neutral-bg)}.cdp-wd{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px}.cdp-wd span{text-align:center;font-size:11px;font-weight:700;color:var(--pf-muted);padding:2px 0}.cdp-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px;gap:2px}.cdp-blank,.cdp-day{height:30px}.cdp-day{border:0;border-radius:8px;background:transparent;color:var(--ink);font:inherit;font-size:var(--fs-body);cursor:pointer}.cdp-day:hover{background:rgba(16,185,129,.16)}.cdp-today{box-shadow:inset 0 0 0 1px var(--pf-accent)}.cdp-sel{background:var(--pf-accent);color:#fff}.cdp-sel:hover{background:var(--pf-accent-dark)}.cdp-dis{color:var(--pf-muted);opacity:.4;cursor:default}.cdp-dis:hover{background:transparent}*{scrollbar-width:thin;scrollbar-color:var(--pf-accent) transparent}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:var(--pf-accent);border-radius:8px;border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background-color:var(--pf-accent-dark);border-width:2px}::-webkit-scrollbar-corner{background:transparent}.ctip{position:fixed;z-index:100001;display:none;max-width:280px;background:#fff;color:var(--ink);border:1px solid var(--pf-accent);border-radius:8px;box-shadow:0 8px 20px rgba(16,80,55,.16);padding:6px 10px;font-family:var(--pf-font);font-size:var(--fs-heading);font-weight:400;line-height:1.35;white-space:normal;overflow-wrap:anywhere;word-break:break-word;pointer-events:none;opacity:0;transition:opacity .12s ease}.ctip.ctip-on{opacity:1}