:root{--bg: #f8fafc;--panel: #ffffff;--panel-hover: #f1f5f9;--border: #e2e8f0;--border-strong: #cbd5e1;--text: #0f172a;--text-inverse: #ffffff;--muted: #64748b;--muted-2: #94a3b8;--primary: #6366f1;--primary-dark: #4f46e5;--primary-soft: #ede9fe;--primary-gradient: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--danger: #ef4444;--danger-soft: #fee2e2;--green: #22c55e;--green-soft: #dcfce7;--warning: #f59e0b;--warning-soft: #fef3c7;--radius: 16px;--radius-sm: 10px;--radius-lg: 24px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow: 0 4px 6px -1px rgba(0, 0, 0, .05), 0 2px 4px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 25px -5px rgba(0, 0, 0, .08), 0 8px 10px -6px rgba(0, 0, 0, .08);--transition: all .2s cubic-bezier(.4, 0, .2, 1);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}body.dark-theme{--bg: #090d16;--panel: #111827;--panel-hover: #1f2937;--border: #1f2937;--border-strong: #374151;--text: #f9fafb;--text-inverse: #090d16;--muted: #9ca3af;--muted-2: #6b7280;--primary: #818cf8;--primary-dark: #6366f1;--primary-soft: rgba(99, 102, 241, .15);--primary-gradient: linear-gradient(135deg, #818cf8 0%, #a78bfa 100%);--danger: #f87171;--danger-soft: rgba(239, 68, 68, .15);--green: #4ade80;--green-soft: rgba(34, 197, 94, .15);--warning: #fbbf24;--warning-soft: rgba(245, 158, 11, .15);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .5);--shadow: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 10px 10px -5px rgba(0, 0, 0, .4)}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;scroll-behavior:smooth}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px;line-height:1.6;transition:background .3s ease,color .3s ease}a{color:var(--primary);text-decoration:none;transition:var(--transition)}a:hover{color:var(--primary-dark)}svg{vertical-align:middle;flex-shrink:0}.center{min-height:100vh;display:grid;place-items:center;padding:24px}.muted{color:var(--muted)}.row{display:flex;gap:12px;align-items:center}.spread{display:flex;justify-content:space-between;align-items:center}.stack{display:flex;flex-direction:column;gap:16px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--muted-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel);color:var(--text);cursor:pointer;font-size:14px;font-weight:600;line-height:1.2;transition:var(--transition);box-shadow:var(--shadow-sm);white-space:nowrap;-webkit-user-select:none;user-select:none}.btn:hover{background:var(--panel-hover);border-color:var(--border-strong);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--primary-soft)}.btn.primary{background:var(--primary-gradient);border:none;color:#fff;box-shadow:0 4px 12px #6366f133}.btn.primary:hover{filter:brightness(1.08);box-shadow:0 6px 16px #6366f159}.btn.ghost{border-color:transparent;background:transparent;box-shadow:none}.btn.ghost:hover{background:var(--panel-hover);color:var(--text)}.btn.danger{color:var(--danger);border-color:var(--danger-soft);background:var(--panel)}.btn.danger:hover{background:var(--danger-soft);border-color:var(--danger)}.btn.sm{padding:7px 12px;font-size:13px;border-radius:8px;gap:6px}.btn.lg{padding:14px 24px;font-size:16px;border-radius:var(--radius-sm)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}input,textarea,select{width:100%;padding:11px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;font-family:inherit;background:var(--panel);color:var(--text);transition:var(--transition);box-shadow:var(--shadow-sm)}input::placeholder,textarea::placeholder{color:var(--muted-2)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}label{font-weight:600;font-size:13px;display:block;margin-bottom:8px;color:var(--text);opacity:.95}.field{margin-bottom:20px}input[type=checkbox],input[type=radio]{width:18px;height:18px;cursor:pointer;accent-color:var(--primary);border:1px solid var(--border-strong);display:inline-block;vertical-align:middle;box-shadow:none;margin:0}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:var(--transition)}.panel:hover{box-shadow:var(--shadow);border-color:var(--border-strong)}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow-sm)}.brand{display:inline-flex;align-items:center;gap:10px;font-size:20px;font-weight:800;letter-spacing:-.02em}.brand-mark{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:var(--radius-sm);color:#fff!important;background:var(--primary-gradient);box-shadow:0 4px 10px #6366f14d}.brand-accent{color:var(--primary);background:var(--primary-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.auth-split{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.auth-aside{position:relative;overflow:hidden;color:#fff;padding:64px;background:linear-gradient(135deg,#0f172a,#1e1b4b,#311042);display:flex;align-items:center;border-right:1px solid var(--border)}.auth-aside-inner{position:relative;z-index:2;max-width:460px}.auth-aside-glow{position:absolute;border-radius:50%;filter:blur(80px);opacity:.35;width:400px;height:400px;background:#6366f1;top:-100px;right:-80px;animation:float-slow 10s infinite alternate}.auth-aside-glow.two{width:350px;height:350px;background:#a855f7;bottom:-80px;left:-80px;opacity:.25;animation:float-slow 12s infinite alternate-reverse}@keyframes float-slow{0%{transform:translateY(0) scale(1)}to{transform:translateY(20px) scale(1.1)}}.auth-brand{display:flex;align-items:center;gap:12px;font-size:22px;font-weight:800;margin-bottom:48px}.brand-mark.lg{width:44px;height:44px;border-radius:12px}.auth-hero{font-size:38px;line-height:1.2;font-weight:800;letter-spacing:-.03em;margin:0 0 16px}.auth-sub{font-size:16px;color:#cbd5e1;margin:0 0 40px}.auth-points{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:24px}.auth-points li{display:flex;gap:16px;align-items:flex-start}.auth-point-ic{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:#ffffff1a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);flex-shrink:0}.auth-point-text{color:#94a3b8;font-size:13.5px}.auth-main{display:grid;place-items:center;padding:48px 24px;background:var(--bg)}.auth-main .auth-box{width:100%;max-width:400px}.auth-title{font-size:28px;font-weight:800;letter-spacing:-.02em;margin:0 0 6px}.auth-desc{color:var(--muted);margin:0 0 28px}.auth-form{display:flex;flex-direction:column}.auth-foot{text-align:center;margin-top:24px;font-size:14px}@media (max-width: 960px){.auth-split{grid-template-columns:1fr}.auth-aside{display:none}}.topbar{background:#fffc;-webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid var(--border);padding:14px 32px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100}body.dark-theme .topbar{background:#111827cc}.container{max-width:1140px;margin:0 auto;padding:36px 24px}.dash-head{margin-bottom:32px}.dash-greeting{margin:0 0 4px;font-size:28px;font-weight:800;letter-spacing:-.03em}.view-switch-row{display:flex;background:var(--border);padding:3px;border-radius:8px;gap:2px}body.dark-theme .view-switch-row{background:var(--border-strong)}.view-switch-btn{background:transparent;border:none;border-radius:6px;padding:6px 10px;color:var(--muted);cursor:pointer;transition:var(--transition);display:flex;align-items:center}.view-switch-btn.active{background:var(--panel);color:var(--text);box-shadow:var(--shadow-sm)}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:36px}.stat-card{display:flex;align-items:center;gap:18px;padding:22px 24px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:var(--transition);position:relative;overflow:hidden}.stat-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px);border-color:var(--border-strong)}.stat-ic{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;flex-shrink:0;font-size:22px}.stat-ic.indigo{background:var(--primary-soft);color:var(--primary)}.stat-ic.green{background:var(--green-soft);color:var(--green)}.stat-ic.violet{background:var(--warning-soft);color:var(--warning)}.stat-num{font-size:32px;font-weight:800;line-height:1;letter-spacing:-.03em}.stat-lbl{color:var(--muted);font-size:13.5px;margin-top:6px;font-weight:500}@media (max-width: 768px){.stat-row{grid-template-columns:1fr}}.list{display:grid;gap:14px}.form-row{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:var(--transition)}.form-row:hover{box-shadow:var(--shadow);border-color:var(--border-strong);transform:translateY(-1px)}.form-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--primary-soft);color:var(--primary);flex-shrink:0;font-size:20px}.form-row h3{margin:0 0 4px;font-size:16px;font-weight:700;letter-spacing:-.01em}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.form-grid-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;justify-content:space-between;min-height:190px;transition:var(--transition);position:relative}.form-grid-card:hover{box-shadow:var(--shadow-lg);border-color:var(--border-strong);transform:translateY(-3px)}.form-grid-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.form-grid-info h3{margin:0 0 6px;font-size:17px;font-weight:700;letter-spacing:-.01em;word-break:break-word}.form-grid-stats{display:flex;align-items:center;gap:14px;margin-top:14px;font-size:13px;color:var(--muted)}.form-grid-actions{display:flex;gap:8px;justify-content:flex-end;border-top:1px solid var(--border);padding-top:16px;margin-top:16px}.badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:4px 10px;border-radius:99px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.badge.published{background:var(--green-soft);color:var(--green)}.badge.draft{background:var(--border);color:var(--muted)}body.dark-theme .badge.draft{background:var(--border-strong)}.badge.closed{background:var(--danger-soft);color:var(--danger)}.badge.new{background:var(--primary-soft);color:var(--primary)}.badge.reviewed{background:var(--border-strong);color:var(--text)}.empty{text-align:center;padding:64px 32px;color:var(--muted)}.empty-ic{display:grid;place-items:center;width:72px;height:72px;border-radius:20px;background:var(--primary-soft);color:var(--primary);margin:0 auto 20px;font-size:32px}.empty p{font-size:15px;margin-bottom:20px}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:1000;padding:20px;animation:fade-in .2s ease-out}.modal{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:32px;max-width:580px;width:100%;max-height:85vh;overflow:auto;box-shadow:var(--shadow-lg);animation:scale-in .25s cubic-bezier(.16,1,.3,1)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.template-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:12px}.template-card{text-align:left;border:1px solid var(--border);border-radius:var(--radius-sm);padding:20px;background:var(--panel);cursor:pointer;transition:var(--transition)}.template-card:hover:not(:disabled){border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);transform:translateY(-2px)}.template-card:disabled{opacity:.6;cursor:default}.template-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:10px;background:var(--primary-soft);color:var(--primary);margin-bottom:12px;font-size:20px}.template-name{font-weight:700;margin-bottom:6px;font-size:15px}.gf-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:transparent}.gf-header{background:#fffc;-webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid var(--border);padding:12px 32px;display:flex;justify-content:space-between;align-items:center;gap:16px;position:sticky;top:0;z-index:90}body.dark-theme .gf-header{background:#111827cc}.gf-formtitle{border:1px solid transparent;font-size:18px;font-weight:700;width:280px;padding:6px 12px;background:transparent;border-radius:var(--radius-sm);transition:var(--transition);box-shadow:none;color:var(--text)}.gf-formtitle:hover{background:var(--panel-hover);border-color:var(--border)}.gf-formtitle:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);background:var(--panel);outline:none}.gf-savestate{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13px;font-weight:500}.gf-dot{width:8px;height:8px;border-radius:50%;background:var(--primary);animation:pulse 1.2s infinite}.gf-tabs{background:#fffc;-webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid var(--border);display:flex;justify-content:center;gap:40px;position:sticky;top:61px;z-index:89}body.dark-theme .gf-tabs{background:#111827cc}.gf-tab{padding:16px 8px;cursor:pointer;color:var(--muted);font-weight:700;font-size:14.5px;border-bottom:3px solid transparent;text-decoration:none;transition:var(--transition)}.gf-tab:hover{color:var(--text);text-decoration:none}.gf-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.gf-build{position:relative;padding:40px 24px 120px;min-height:calc(100vh - 118px);background:radial-gradient(1000px 300px at 50% -100px,var(--primary-soft) 0%,var(--bg) 100%)}.gf-page{width:100%;max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:14px}.gf-rail{position:absolute;left:calc(50% + 400px);width:50px;transition:top .25s cubic-bezier(.4,0,.2,1)}@media (max-width: 960px){.gf-rail{position:sticky;top:140px;left:auto;float:right;margin-right:12px;margin-top:-300px}}.gf-toolbar{background:#ffffffb3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:30px;padding:8px 6px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-lg)}body.dark-theme .gf-toolbar{background:#111827b3}.gf-toolbar button{width:38px;height:38px;border:none;background:none;border-radius:50%;cursor:pointer;color:var(--muted);display:grid;place-items:center;transition:var(--transition)}.gf-toolbar button:hover{background:var(--primary);color:#fff;transform:scale(1.1)}.gf-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:24px 28px;box-shadow:var(--shadow-sm);cursor:pointer;position:relative;transition:var(--transition)}.gf-card:not(.sel):hover{box-shadow:var(--shadow);border-color:var(--border-strong)}.gf-card.sel{box-shadow:var(--shadow-lg);cursor:default;border-color:var(--primary-dark)}.gf-card.sel:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--primary-gradient);border-radius:var(--radius) 0 0 var(--radius)}.gf-card.dragging{opacity:.45}.gf-grip{text-align:center;color:var(--muted-2);font-size:16px;cursor:grab;margin:-14px 0 10px;-webkit-user-select:none;user-select:none}.gf-formhead{padding-top:0;overflow:hidden}.gf-accent{height:10px;margin:0 -28px 24px}.gf-cover{height:150px;margin:0 -28px;background-size:cover;background-position:center;position:relative}.gf-cover-x{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;border:none;background:#0000008c;color:#fff;cursor:pointer;display:grid;place-items:center}.gf-cover-x:hover{background:#000000bf}.gf-formhead-body{position:relative;padding-top:22px}.gf-formhead.has-cover .gf-formhead-body{padding-top:0}.gf-logo-wrap{position:relative;display:inline-block;margin-bottom:12px}.gf-formhead.has-cover .gf-logo-wrap{margin-top:-54px}.gf-logo{display:block;width:76px;height:76px;border-radius:18px;object-fit:cover;border:3px solid var(--panel);box-shadow:var(--shadow);background:var(--panel)}.gf-logo-x{position:absolute;top:-7px;right:-7px;width:22px;height:22px;border-radius:50%;border:2px solid var(--panel);background:var(--danger);color:#fff;cursor:pointer;display:grid;place-items:center}.gf-brand-tools{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 14px}.gf-formhead.sel:before{top:10px;border-radius:0}.gf-formhead-title{border:none;font-size:32px;font-weight:800;letter-spacing:-.03em;width:100%;padding:6px 0;border-bottom:2px solid transparent;background:transparent;color:var(--text)}.gf-formhead-title:focus{border-bottom-color:var(--primary);box-shadow:none;outline:none}.gf-formhead-desc{border:none;font-size:15px;color:var(--muted);width:100%;padding:6px 0;margin-top:8px;border-bottom:1px solid transparent;background:transparent}.gf-formhead-desc:focus{border-bottom-color:var(--primary);box-shadow:none;outline:none}.gf-qrow{display:flex;gap:20px;align-items:flex-start}.gf-qtitle{flex:1;background:var(--bg);border:none;border-bottom:2px solid transparent;border-radius:8px 8px 0 0;padding:12px 16px;font-size:16px;font-weight:600;transition:var(--transition);color:var(--text)}.gf-qtitle:focus{background:var(--primary-soft);border-bottom-color:var(--primary);box-shadow:none;outline:none}.gf-qtitle-static{font-size:16px;font-weight:600;color:var(--text)}.gf-qdesc{border:none;border-bottom:1.5px solid var(--border);width:100%;padding:8px 4px;font-size:13.5px;color:var(--muted);margin-top:12px;background:transparent}.gf-qdesc:focus{border-bottom-color:var(--primary);box-shadow:none;outline:none}.gf-qbody{margin-top:20px}.gf-preview-line{color:var(--muted-2);border-bottom:1.5px dashed var(--border-strong);width:60%;padding-bottom:8px;font-size:14.5px}.gf-file{color:var(--muted);background:var(--bg);border:1.5px dashed var(--border-strong);border-radius:var(--radius-sm);padding:12px 20px;display:inline-flex;align-items:center;gap:10px;font-size:13.5px;font-weight:600}.gf-stars{color:var(--warning);display:inline-flex;gap:8px}.gf-options{display:flex;flex-direction:column;gap:12px}.gf-opt{display:flex;align-items:center;gap:12px}.gf-opt-mark{color:var(--muted-2);display:inline-flex;justify-content:center;flex-shrink:0}.gf-opt-num{width:20px;text-align:center;color:var(--muted);font-weight:600}.gf-opt-input{border:none;border-bottom:1.5px solid transparent;padding:6px 4px;font-size:14.5px;flex:1;max-width:460px;border-radius:0;background:transparent;color:var(--text);box-shadow:none}.gf-opt-input:hover{border-bottom-color:var(--border-strong)}.gf-opt-input:focus{border-bottom-color:var(--primary);box-shadow:none;outline:none}.gf-opt-x{background:none;border:none;color:var(--muted-2);cursor:pointer;display:grid;place-items:center;padding:6px;border-radius:8px;transition:var(--transition)}.gf-opt-x:hover{color:var(--danger);background:var(--danger-soft)}.gf-addopt{display:inline-flex;align-items:center;gap:8px;background:none;border:none;color:var(--muted);cursor:pointer;font-size:14px;font-weight:600;padding:6px 4px;transition:var(--transition)}.gf-addopt:hover{color:var(--primary)}.gf-type{position:relative}.gf-typebtn{display:flex;align-items:center;gap:10px;min-width:198px;background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:11px 14px;cursor:pointer;font-size:14.5px;font-weight:600;transition:var(--transition);color:var(--text);box-shadow:var(--shadow-sm)}.gf-typebtn:hover{border-color:var(--primary)}.gf-typebtn .gf-type-ic{color:var(--primary)}.gf-type-ic{width:20px;display:inline-flex;justify-content:center}.gf-type-lbl{flex:1;text-align:left}.gf-caret{color:var(--muted)}.gf-typemenu{position:absolute;right:0;top:calc(100% + 8px);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:8px;z-index:50;min-width:240px;max-height:380px;overflow:auto;animation:scale-in .15s ease-out}.gf-typeitem{display:flex;align-items:center;gap:12px;width:100%;background:none;border:none;padding:10px 14px;cursor:pointer;font-size:14px;text-align:left;border-radius:8px;color:var(--text);transition:var(--transition)}.gf-typeitem .gf-type-ic{color:var(--muted)}.gf-typeitem:hover{background:var(--panel-hover)}.gf-typeitem.sel{background:var(--primary-soft);color:var(--primary);font-weight:700}.gf-typeitem.sel .gf-type-ic{color:var(--primary)}.gf-type-check{margin-left:auto;color:var(--primary)}.gf-bottombar{display:flex;align-items:center;justify-content:flex-end;gap:6px;border-top:1px solid var(--border);margin-top:24px;padding-top:14px}.gf-iconbtn{background:none;border:none;cursor:pointer;color:var(--muted);padding:8px;border-radius:var(--radius-sm);line-height:1;display:grid;place-items:center;transition:var(--transition)}.gf-iconbtn:hover{background:var(--primary-soft);color:var(--primary)}.gf-divider{width:1px;height:24px;background:var(--border-strong);margin:0 10px}.gf-req{color:var(--muted);font-size:13.5px;font-weight:600;margin-right:6px}.gf-more{position:relative}.gf-menu{position:absolute;right:0;top:calc(100% + 8px);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:8px;z-index:50;min-width:210px;animation:scale-in .15s ease-out}.gf-menu button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;padding:10px 14px;cursor:pointer;font-size:14px;border-radius:8px;color:var(--text);transition:var(--transition)}.gf-menu button:hover{background:var(--panel-hover)}.gf-menu-sp{display:inline-block;width:16px}.gf-switch{width:42px;height:24px;background:var(--border-strong);border-radius:99px;position:relative;cursor:pointer;display:inline-block;transition:var(--transition)}.gf-switch.on{background:var(--primary)}.gf-knob{position:absolute;top:3px;left:3px;width:18px;height:18px;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0003;transition:transform .2s cubic-bezier(.16,1,.3,1)}.gf-switch.on .gf-knob{transform:translate(18px)}.gf-logic{margin-top:18px;padding:16px;background:var(--primary-soft);border:1px solid var(--border);border-radius:var(--radius-sm)}.gf-logic-title{font-size:13px;color:var(--primary);margin-bottom:10px;font-weight:700}.gf-title-input{border:none;font-size:24px;font-weight:800;letter-spacing:-.02em;width:100%;padding:6px 0;border-bottom:2px solid transparent;background:transparent;color:var(--text)}.gf-title-input:focus{border-bottom-color:var(--primary);outline:none}.gf-title-static{font-size:22px;font-weight:700;color:var(--text)}.gf-after{color:var(--muted);font-size:13px;text-align:right;margin:0 8px 10px;font-weight:500}.gf-section{border-top:6px solid var(--primary);border-top-left-radius:0;border-top-right-radius:0}.gf-section-tag{display:inline-block;background:var(--primary-gradient);color:#fff;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:6px 14px;border-radius:8px 8px 0 0;position:absolute;top:-30px;left:-1px}.gf-section-title{font-size:20px;font-weight:700;color:var(--text)}.gf-collapse{position:absolute;top:18px;right:20px;background:none;border:none;cursor:pointer;color:var(--muted);padding:6px;border-radius:50%;line-height:1;display:grid;place-items:center;transition:var(--transition)}.gf-collapse:hover{background:var(--panel-hover);color:var(--primary)}table{width:100%;border-collapse:collapse;font-size:13.5px}th,td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--border);vertical-align:middle}th{color:var(--muted);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.05em;background:var(--panel-hover)}tbody tr{transition:var(--transition)}tbody tr:hover{background:var(--panel-hover)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:500;display:flex;justify-content:flex-end;animation:fade-in .2s ease-out}.drawer{background:var(--panel);border-left:1px solid var(--border);width:100%;max-width:580px;height:100vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:slide-in-right .3s cubic-bezier(.16,1,.3,1)}@keyframes slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{padding:24px 32px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.drawer-title{margin:0;font-size:20px;font-weight:800;letter-spacing:-.02em}.drawer-body{padding:32px;overflow-y:auto;flex:1}.drawer-body .field{padding-bottom:18px;border-bottom:1px solid var(--border);margin-bottom:18px}.drawer-body .field label{font-size:14px;font-weight:700;color:var(--muted);margin-bottom:6px}.drawer-body .field div{font-size:15px;font-weight:500;word-break:break-word}.drawer-footer{padding:20px 32px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:12px;background:var(--panel-hover)}.public-wrap{min-height:100vh;padding:56px 20px;display:flex;flex-direction:column;align-items:center;background:radial-gradient(900px 500px at 15% -10%,color-mix(in srgb,var(--form-accent, var(--primary)) 28%,#ffffff),transparent 70%),radial-gradient(900px 500px at 95% 110%,color-mix(in srgb,var(--form-accent, var(--primary)) 20%,#ffffff),transparent 70%),#eef2f7}body.dark-theme .public-wrap{background:radial-gradient(900px 500px at 15% -10%,color-mix(in srgb,var(--form-accent, var(--primary)) 24%,#0b1220),transparent 70%),radial-gradient(900px 500px at 95% 110%,color-mix(in srgb,var(--form-accent, var(--primary)) 16%,#0b1220),transparent 70%),var(--bg)}.public-form{width:100%;max-width:680px;margin:0 auto;display:flex;flex-direction:column}.pf-shell{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg)}.pf-banner{padding:40px 44px 36px;color:#fff;position:relative}.pf-banner.on-light,.pf-banner.on-light h1{color:#1f2937}.pf-banner.on-light .pf-banner-desc,.pf-banner.on-light .pf-steps span{color:#1f2937d1}.pf-banner.on-light .pf-progress{background:#00000024}.pf-banner.on-light .pf-progress-bar{background:#1f2937}.pf-logo-tile{display:inline-flex;padding:10px;background:#fff;border-radius:14px;box-shadow:0 6px 18px #0000002e;margin-bottom:20px}.pf-logo-tile img{display:block;width:96px;height:96px;object-fit:contain;border-radius:6px}.pf-banner h1{font-size:30px;line-height:1.2;font-weight:800;letter-spacing:-.02em;margin:0;color:#fff}.pf-banner-desc{margin:14px 0 0;font-size:15px;line-height:1.6;color:#ffffffeb;white-space:pre-line}.pf-steps{margin-top:20px}.pf-steps span{font-size:12.5px;color:#ffffffe6;display:block;margin-bottom:6px;font-weight:600}.pf-progress{height:8px;background:#ffffff47;border-radius:99px;overflow:hidden}.pf-progress-bar{height:100%;background:#fff;border-radius:99px;transition:width .3s cubic-bezier(.4,0,.2,1)}.pf-body{padding:28px 44px 36px}.pf-required-note{font-size:13px;color:var(--muted);margin-bottom:22px}.pf-required-note .req{color:var(--danger);font-weight:700}.pf-success-ic{margin-bottom:16px;font-size:64px}.pf-footer{text-align:center;margin-top:22px;font-size:12.5px;color:var(--muted-2)}.pf-footer strong{color:var(--muted)}.pf-fields{display:flex;flex-direction:column;gap:24px}.pf-field{scroll-margin-top:80px}.pf-label{font-size:16px;font-weight:600;color:var(--text);margin:0;display:block}.pf-num{font-weight:700;color:var(--text);margin-right:2px}.pf-label .req{color:var(--danger)}.pf-help{font-size:13px;color:var(--muted);margin-top:4px}.pf-control{margin-top:12px}.public-form input,.public-form textarea,.public-form select{padding:13px 15px;font-size:15px;border-radius:12px}.public-form input:focus,.public-form textarea:focus,.public-form select:focus{border-color:var(--form-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--form-accent) 16%,transparent)}.pf-options{display:flex;flex-direction:column;gap:10px}.pf-option{position:relative;display:flex;align-items:center;gap:13px;padding:14px 16px;border:1.5px solid var(--border);border-radius:12px;cursor:pointer;transition:var(--transition);-webkit-user-select:none;user-select:none}.pf-option:hover{border-color:var(--form-accent);background:color-mix(in srgb,var(--form-accent) 5%,transparent)}.pf-option.on{border-color:var(--form-accent);background:color-mix(in srgb,var(--form-accent) 10%,transparent)}.pf-option input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;box-shadow:none}.pf-option-text{font-size:15px;font-weight:500;color:var(--text)}.pf-radio-dot{width:20px;height:20px;border-radius:50%;border:2px solid var(--border-strong);flex-shrink:0;position:relative;transition:var(--transition)}.pf-option.on .pf-radio-dot{border-color:var(--form-accent)}.pf-option.on .pf-radio-dot:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:50%;background:var(--form-accent)}.pf-check-box{width:20px;height:20px;border-radius:6px;border:2px solid var(--border-strong);flex-shrink:0;display:grid;place-items:center;color:#fff;transition:var(--transition)}.pf-option.on .pf-check-box{border-color:var(--form-accent);background:var(--form-accent)}.pf-rating{display:flex;gap:10px}.pf-section-heading{padding-top:6px;border-top:1px solid var(--border)}.pf-section-heading:first-child{border-top:none;padding-top:0}.pf-section-heading h3{font-size:20px;font-weight:800;margin:0 0 4px;letter-spacing:-.02em}.pf-section-heading p{font-size:13.5px;margin:0;color:var(--muted)}@media (max-width: 720px){.public-wrap{padding:28px 14px}.pf-banner{padding:30px 26px 26px}.pf-body{padding:24px 26px 28px}}@media (max-width: 520px){.public-wrap{padding:14px 10px}.pf-shell{border-radius:var(--radius)}.pf-banner{padding:22px 18px 20px}.pf-banner h1{font-size:22px}.pf-banner-desc{font-size:14px;margin-top:10px}.pf-logo-tile{padding:8px;margin-bottom:14px}.pf-logo-tile img{width:64px;height:64px}.pf-body{padding:18px 18px 22px}.pf-fields{gap:20px}.pf-required-note{margin-bottom:16px}.pf-label{font-size:15px}.pf-control{margin-top:10px}.public-form input,.public-form textarea,.public-form select,.pf-option{padding:12px 13px}.pf-nav .btn.lg{padding:12px 18px;font-size:15px}.pf-preview-bar{font-size:12.5px;padding:10px 14px}}@media (max-width: 600px){.container{padding:18px 14px}.topbar{padding:10px 14px}.topbar .muted{display:none}.dash-head{flex-direction:column;align-items:flex-start;gap:12px}.dash-head .row{width:100%;flex-wrap:wrap}.form-row{flex-direction:column;align-items:flex-start;gap:14px}.form-row .row{flex-wrap:wrap}.modal{padding:18px;border-radius:var(--radius)}.template-grid{grid-template-columns:1fr}}.pf-nav{margin-top:4px}.pf-hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}.public-wrap{border-top:5px solid var(--form-accent)}.rating-star{cursor:pointer;color:var(--border-strong);display:inline-flex;transition:var(--transition)}.rating-star:hover{transform:scale(1.18)}.progress{height:8px;background:var(--border);border-radius:99px;overflow:hidden}.progress-bar{height:100%;border-radius:99px;transition:width .3s cubic-bezier(.4,0,.2,1)}.alert{padding:12px 18px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;margin-bottom:16px}.alert.error{background:var(--danger-soft);color:var(--danger);border:1.5px solid var(--danger)}.alert.success{background:var(--green-soft);color:var(--green);border:1.5px solid var(--green)}.tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:1.5px solid var(--border)}.tab{padding:11px 16px;cursor:pointer;border-bottom:3px solid transparent;color:var(--muted);font-weight:700;transition:var(--transition)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.checkbox-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}.checkbox-row label{cursor:pointer;-webkit-user-select:none;user-select:none}.qr-stage{display:grid;place-items:center;padding:24px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin:16px 0}.qr-stage canvas{border-radius:8px}.qr-link{display:flex;gap:10px;margin-top:18px}.file-upload-wrapper{position:relative;overflow:hidden;display:inline-block;width:100%}.file-upload-btn{border:1.5px dashed var(--border-strong);color:var(--muted);background:var(--panel);padding:16px;border-radius:var(--radius-sm);text-align:center;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:8px;font-weight:600;transition:var(--transition);width:100%}.file-upload-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.file-upload-wrapper input[type=file]{position:absolute;left:0;top:0;opacity:0;width:100%;height:100%;cursor:pointer}.pf-preview-bar{position:sticky;top:0;z-index:150;display:flex;align-items:center;gap:12px;width:100%;max-width:640px;margin:0 auto 20px;padding:12px 18px;background:#0f172a;color:#fff;border-radius:var(--radius-sm);font-size:13.5px;box-shadow:var(--shadow-lg);border:1px solid #1e293b}.pf-preview-bar span{flex:1;font-weight:500}.pf-preview-bar .btn{background:#ffffff1f;color:#fff;border-color:#fff3;box-shadow:none}.pf-preview-bar .btn:hover{background:#ffffff40;border-color:#fff}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 14px center;background-size:16px;padding-right:40px}body.dark-theme select{background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e")}
