@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Playfair+Display:wght@400;600;700&family=JetBrains+Mono:wght@400;500&display=swap";
:root{--color-primary:#ae5800;--color-primary-light:#e77400;--color-accent:#ff8000;--color-accent-light:#fff3ef;--color-accent-hover:#f07800;--color-success:#059669;--color-success-bg:#0596691a;--color-danger:#dc2626;--color-danger-bg:#dc26261a;--color-warning:#d97706;--color-info:#2563eb;--bg-body:#0d1117;--bg-card:#161b22;--bg-card-hover:#1c2333;--bg-surface:#21262d;--bg-input:#0d1117;--bg-glass:#161b22d9;--text-primary:#f0f6fc;--text-secondary:#8b949e;--text-muted:#484f58;--text-accent:var(--color-accent);--border-color:#30363d;--border-focus:var(--color-accent);--border-radius-sm:6px;--border-radius-md:10px;--border-radius-lg:16px;--border-radius-xl:24px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow:0 6px 16px #ff800059;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif:"Playfair Display", Georgia, serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s ease;--sidebar-width:260px;--navbar-height:64px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-sans);background:var(--bg-body);color:var(--text-primary);min-height:100vh;line-height:1.6}a{color:var(--color-accent);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-accent-light)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-body)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.btn{justify-content:center;align-items:center;gap:var(--space-sm);font-family:var(--font-sans);border-radius:var(--border-radius-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:1px solid #0000;padding:10px 20px;font-size:.875rem;font-weight:600;line-height:1.4;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent);font-weight:600}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover);box-shadow:var(--shadow-glow);transform:translateY(-1px)}.btn-secondary{color:var(--text-primary);border-color:var(--border-color);background:0 0}.btn-secondary:hover:not(:disabled){background:var(--bg-surface);border-color:var(--text-muted)}.btn-danger{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn-danger:hover:not(:disabled){background:#d43d3d}.btn-ghost{color:var(--text-secondary);background:0 0;border:none;padding:8px 12px}.btn-ghost:hover:not(:disabled){color:var(--text-primary);background:var(--bg-surface)}.btn-sm{padding:6px 14px;font-size:.8125rem}.btn-lg{padding:14px 28px;font-size:1rem}.btn-icon{width:36px;height:36px;padding:8px}.input,.textarea,.select{width:100%;font-family:var(--font-sans);color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);transition:all var(--transition-fast);outline:none;padding:10px 14px;font-size:.875rem}.input:focus,.textarea:focus,.select:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #ff800026}.input::placeholder{color:var(--text-muted)}.label{color:var(--text-secondary);margin-bottom:6px;font-size:.8125rem;font-weight:500;display:block}.form-group{margin-bottom:var(--space-md)}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-md);padding:var(--space-lg);transition:all var(--transition-normal)}.card:hover{box-shadow:var(--shadow-md);border-color:#ff80004d}.badge{letter-spacing:.02em;border-radius:20px;align-items:center;gap:4px;padding:3px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.badge-draft{color:var(--color-warning);background:#f5a62326;border:1px solid #f5a6234d}.badge-published{background:var(--color-success-bg);color:var(--color-success);border:1px solid #1db9544d}.badge-revoked{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid #e74c4c4d}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.text-center{text-align:center}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}.animate-fadeIn{animation:.4s forwards fadeIn}.animate-slideIn{animation:.3s forwards slideIn}.skeleton{background:linear-gradient(90deg, var(--bg-surface) 25%, var(--bg-card-hover) 50%, var(--bg-surface) 75%);border-radius:var(--border-radius-sm);background-size:200% 100%;animation:1.5s infinite shimmer}.login-container{min-height:100vh;padding:var(--space-lg);background:radial-gradient(ellipse at 20% 50%, #ff80000d 0%, transparent 50%), radial-gradient(ellipse at 80% 20%, #0a16284d 0%, transparent 50%), var(--bg-body);justify-content:center;align-items:center;display:flex}.login-card{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);width:100%;max-width:440px;padding:var(--space-2xl);box-shadow:var(--shadow-lg);animation:.6s fadeIn}.login-brand{text-align:center;margin-bottom:var(--space-xl)}.login-brand h1{font-family:var(--font-serif);color:var(--text-primary);letter-spacing:-.02em;font-size:2.5rem;font-weight:700}.login-brand h1 span{color:var(--color-accent)}.login-brand p{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.15em;text-transform:uppercase;margin-top:var(--space-xs);font-size:.75rem}.login-divider{align-items:center;gap:var(--space-md);margin:var(--space-lg) 0;color:var(--text-muted);font-size:.75rem;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--border-color);flex:1;height:1px}.login-error{background:var(--color-danger-bg);border-radius:var(--border-radius-sm);padding:var(--space-sm) var(--space-md);color:var(--color-danger);margin-bottom:var(--space-md);border:1px solid #e74c4c4d;font-size:.8125rem;animation:.3s fadeIn}.sso-grid{gap:var(--space-sm);margin-bottom:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.sso-btn{justify-content:center;align-items:center;gap:var(--space-sm);color:var(--text-primary);background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);cursor:pointer;transition:all var(--transition-fast);padding:10px 16px;font-size:.8125rem;font-weight:500;display:flex}.sso-btn:hover{background:var(--bg-card-hover);border-color:var(--text-muted);transform:translateY(-1px)}.sso-btn svg{width:18px;height:18px}.dashboard-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--bg-card);border-right:1px solid var(--border-color);z-index:50;height:100vh;transition:transform var(--transition-normal);flex-direction:column;display:flex;position:fixed;top:0;left:0}.sidebar-brand{padding:var(--space-lg);border-bottom:1px solid var(--border-color)}.sidebar-brand h2{font-family:var(--font-serif);font-size:1.5rem;font-weight:700}.sidebar-brand h2 span{color:var(--color-accent)}.sidebar-nav{padding:var(--space-md);flex-direction:column;flex:1;gap:2px;display:flex}.sidebar-link{align-items:center;gap:var(--space-sm);color:var(--text-secondary);border-radius:var(--border-radius-sm);transition:all var(--transition-fast);padding:10px 14px;font-size:.875rem;font-weight:500;text-decoration:none;display:flex}.sidebar-link:hover{color:var(--text-primary);background:var(--bg-surface)}.sidebar-link.active{color:var(--color-accent);background:#ff80001a}.sidebar-link .icon{text-align:center;width:20px;font-size:1.1rem}.sidebar-footer{padding:var(--space-md);border-top:1px solid var(--border-color)}.main-content{margin-left:var(--sidebar-width);flex:1;min-height:100vh}.navbar{height:var(--navbar-height);padding:0 var(--space-xl);border-bottom:1px solid var(--border-color);background:var(--bg-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:40;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.page-content{padding:var(--space-xl)}.page-header{margin-bottom:var(--space-xl);justify-content:space-between;align-items:center;display:flex}.page-title{color:var(--text-primary);font-size:1.5rem;font-weight:700}.page-subtitle{color:var(--text-secondary);margin-top:var(--space-xs);font-size:.875rem}.stats-grid{gap:var(--space-md);margin-bottom:var(--space-xl);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-md);padding:var(--space-lg);transition:all var(--transition-normal)}.stat-card:hover{box-shadow:var(--shadow-md);border-color:#ff80004d;transform:translateY(-2px)}.stat-icon{margin-bottom:var(--space-sm);font-size:1.5rem}.stat-value{color:var(--text-primary);font-size:2rem;font-weight:800;line-height:1}.stat-label{color:var(--text-secondary);margin-top:var(--space-xs);font-size:.8125rem}.templates-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.template-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-md);transition:all var(--transition-normal);cursor:pointer;overflow:hidden}.template-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-lg), var(--shadow-glow);transform:translateY(-3px)}.template-thumbnail{background:var(--bg-surface);width:100%;height:180px;color:var(--text-muted);border-bottom:1px solid var(--border-color);justify-content:center;align-items:center;font-size:3rem;display:flex;position:relative}.template-thumbnail .status-badge{top:var(--space-sm);right:var(--space-sm);position:absolute}.template-info{padding:var(--space-md)}.template-name{color:var(--text-primary);margin-bottom:var(--space-xs);font-size:1rem;font-weight:600}.template-meta{color:var(--text-secondary);align-items:center;gap:var(--space-sm);font-size:.8125rem;display:flex}.editor-layout{background:var(--bg-body);flex-direction:column;height:100vh;max-height:100vh;display:flex;overflow:hidden}.editor-header{background:var(--bg-card);border-bottom:1px solid var(--border-color);height:52px;padding:0 var(--space-md);justify-content:space-between;align-items:center;gap:var(--space-md);flex-shrink:0;width:100%;display:flex}.editor-header-actions{gap:var(--space-sm);align-items:center;display:flex}.editor-toolbar{background:var(--bg-card);border-right:1px solid var(--border-color);flex-direction:column;flex-shrink:0;align-items:center;gap:2px;width:64px;padding:8px 0;display:flex;overflow-y:auto}.toolbar-separator{background:var(--border-color);width:36px;height:1px;margin:4px 0}.tool-btn{width:48px;min-height:48px;color:var(--text-secondary);border-radius:var(--border-radius-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 2px;display:flex}.tool-btn svg{flex-shrink:0;width:20px;height:20px}.tool-btn-label{text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:52px;color:inherit;opacity:.7;font-size:.5rem;line-height:1;overflow:hidden}.tool-btn:hover{background:var(--bg-surface);color:var(--text-primary)}.tool-btn.active{color:var(--color-accent);background:#ff800026}.editor-canvas-container{background:#111 radial-gradient(circle,#ffffff0a 1px,#0000 1px) 0 0/24px 24px;flex-direction:column;flex:1;justify-content:flex-start;align-items:center;gap:12px;padding-top:12px;display:flex;position:relative;overflow:auto}.editor-canvas-wrapper{transition:box-shadow var(--transition-normal);background:#fff;border-radius:2px;box-shadow:0 8px 48px #000000b3,0 0 0 1px #ffffff0d}.canvas-loading{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:.875rem;display:flex;position:absolute;inset:0}.canvas-loading-spinner{border:2px solid var(--border-color);border-top-color:var(--color-accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.editor-properties{background:var(--bg-card);border-left:1px solid var(--border-color);resize:horizontal;flex-direction:column;flex-shrink:0;width:350px;height:100%;display:flex;position:relative;overflow:hidden auto}.editor-properties:before{content:"";background:var(--color-accent);cursor:col-resize;opacity:0;width:4px;height:100%;transition:opacity var(--transition-fast);position:absolute;top:0;left:0}.editor-properties:hover:before{opacity:.6}.props-tabs{border-bottom:1px solid var(--border-color);background:var(--bg-card);flex-shrink:0;align-items:stretch;height:44px;display:flex}.props-tab{color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:.75rem;font-weight:600;font-family:var(--font-mono);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:10px 4px}.props-tab:hover{color:var(--text-primary);background:var(--bg-card-hover)}.props-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent);background:var(--bg-card)}.props-tab-content{min-height:0;padding:var(--space-md);flex:1;overflow:hidden auto}.properties-section{margin-bottom:var(--space-lg)}.properties-section-title{font-family:var(--font-mono);color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-sm);padding-bottom:var(--space-xs);border-bottom:1px solid var(--border-color);font-size:.6875rem;font-weight:500}.prop-row{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.prop-label{color:var(--text-secondary);white-space:nowrap;flex-shrink:0;min-width:80px;font-size:.75rem}.prop-control{flex:1;min-width:0}.prop-number{text-align:center;padding:4px 8px!important;font-size:.8125rem!important}.prop-slider{width:100%;accent-color:var(--color-accent);cursor:pointer;height:4px}.prop-empty{color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:32px 16px;display:flex}.prop-empty svg{opacity:.4}.prop-empty p{font-size:.8125rem;line-height:1.5}.color-picker-row{flex:1;align-items:center;gap:6px;display:flex}.color-swatch{border:1px solid var(--border-color);cursor:pointer;background:0 0;border-radius:4px;flex-shrink:0;width:28px;height:28px;padding:0}.color-hex-input{flex:1;min-width:0;font-size:.75rem!important;font-family:var(--font-mono)!important;padding:4px 8px!important}.layers-list{flex-direction:column;gap:2px;display:flex}.layer-item{border-radius:var(--border-radius-sm);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;border:1px solid #888;align-items:center;gap:8px;padding:6px 8px;display:flex}.layer-item:hover{background:var(--bg-surface);border-color:#aaa}.layer-item.active{background:#ff80001a;border-color:#ff800080}.layer-item.hidden{opacity:.4}.layer-icon{text-align:center;flex-shrink:0;width:18px;font-size:.875rem}.layer-name{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.75rem;overflow:hidden}.layer-item.active .layer-name{color:var(--text-primary)}.layer-actions{opacity:0;transition:opacity var(--transition-fast);gap:2px;display:flex}.layer-item:hover .layer-actions{opacity:1}.layer-action-btn{width:22px;height:22px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;display:flex}.layer-action-btn:hover{color:var(--text-primary);background:var(--bg-surface)}.layer-delete-btn:hover{color:var(--color-danger)}.variables-grid{flex-direction:column;gap:4px;display:flex}.variable-chip{background:var(--bg-surface);border-radius:var(--border-radius-sm);cursor:pointer;transition:all var(--transition-fast);text-align:left;border:1px solid #888;align-items:center;gap:8px;width:100%;padding:8px 10px;display:flex}.variable-chip:hover{background:#ff80001a;border-color:#aaa}.variable-chip-icon{flex-shrink:0;font-size:1rem}.variable-chip-label{color:var(--text-primary);flex:1;font-size:.8125rem;font-weight:500}.variable-chip-key{font-family:var(--font-mono);color:var(--color-accent);opacity:.7;font-size:.6875rem}.border-template-btn{background:var(--bg-surface);border-radius:var(--border-radius-sm);cursor:pointer;color:var(--text-secondary);transition:all var(--transition-fast);border:1px solid #888;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:72px;padding:12px 8px;font-size:.75rem;display:flex}.border-template-btn:hover{color:var(--text-primary);box-shadow:var(--shadow-md);background:#ff80001a;border-color:#aaa;transform:translateY(-2px)}.preview-modal-content{width:95vw!important;max-width:900px!important}.preview-canvas-area{background:var(--bg-surface);border-radius:var(--border-radius-md);justify-content:center;align-items:center;min-height:200px;padding:16px;display:flex;overflow:hidden}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0009;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:var(--space-xl);width:90%;max-width:600px;max-height:85vh;box-shadow:var(--shadow-lg);animation:.3s fadeIn;overflow-y:auto}.modal-header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:1.25rem;font-weight:700}.modal-close{color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;padding:4px;font-size:1.5rem}.modal-close:hover{color:var(--text-primary)}.table-container{border:1px solid var(--border-color);border-radius:var(--border-radius-md);overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);background:var(--bg-surface);border-bottom:1px solid var(--border-color);padding:12px 16px;font-size:.75rem;font-weight:600}.table td{border-bottom:1px solid var(--border-color);padding:12px 16px;font-size:.875rem}.table tr:hover td{background:var(--bg-card-hover)}.table tr:last-child td{border-bottom:none}@media (max-width:1024px){.editor-properties{width:250px;min-width:250px}.editor-toolbar{width:56px}}@media (max-width:768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-content{margin-left:0}.sso-grid,.stats-grid,.templates-grid{grid-template-columns:1fr}.editor-properties{z-index:30;width:280px;height:calc(100% - 52px);box-shadow:var(--shadow-lg);position:absolute;top:52px;right:0}.editor-toolbar{width:48px}.page-content{padding:var(--space-md)}.page-title{font-size:1.25rem}}.legal-page{background:var(--bg-body);min-height:100vh;padding:var(--space-xl) var(--space-md) var(--space-3xl)}.legal-container{max-width:820px;color:var(--text-secondary);margin:0 auto;line-height:1.7}.legal-container h1{font-family:var(--font-serif);color:var(--text-primary);margin:var(--space-lg) 0 var(--space-xs);font-size:2rem}.legal-container h2{color:var(--text-primary);margin:var(--space-xl) 0 var(--space-sm);font-size:1.125rem}.legal-container p,.legal-container ul{margin-bottom:var(--space-sm)}.legal-container ul{padding-left:var(--space-lg)}.legal-brand{font-family:var(--font-serif);color:var(--text-primary);font-size:1.5rem;font-weight:700;text-decoration:none}.legal-brand span{color:var(--color-accent)}.legal-nav{gap:var(--space-md);margin-top:var(--space-md);flex-wrap:wrap;font-size:.8125rem;display:flex}.legal-nav a{color:var(--text-secondary);border-bottom:2px solid #0000;padding-bottom:2px;text-decoration:none}.legal-nav a.active,.legal-nav a:hover{color:var(--color-accent);border-bottom-color:var(--color-accent)}.legal-meta{font-family:var(--font-mono);color:var(--text-muted);font-size:.75rem}.legal-summary{margin:var(--space-md) 0;font-style:italic}.legal-table-wrap{margin:var(--space-sm) 0;overflow-x:auto}.legal-table-wrap table{border-collapse:collapse;width:100%;font-size:.8125rem}.legal-table-wrap th,.legal-table-wrap td{text-align:left;vertical-align:top;padding:var(--space-sm);border:1px solid var(--border-color)}.legal-table-wrap th{background:var(--bg-surface);color:var(--text-primary)}.legal-links{text-align:center;margin-top:var(--space-md);color:var(--text-muted);font-size:.75rem}.legal-links a{color:var(--text-secondary);text-decoration:underline}.legal-links a:hover{color:var(--color-accent)}.consent-check{gap:var(--space-sm);color:var(--text-secondary);margin:var(--space-md) 0;align-items:flex-start;font-size:.8125rem;line-height:1.5;display:flex}.consent-check input{width:16px;height:16px;accent-color:var(--color-accent);flex-shrink:0;margin-top:3px}.consent-check a{color:var(--color-accent)}
